数据库安全性及用户权限管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)使用SQL Server Management Studio查看登录账 户 2)使用系统存储过程sp_helplogins查看登录账户
4、删除登录账户 、
1)使用SQL Server Management Studio删除登录账 户 2)使用DROP LOGIN 语句删除登录账户 DROP LOGIN login_name
2、两种身份验证模式 、
Windows身份验证模式 混合验证模式
1)Windows身份验证模式 ) 身份验证模式
当用户通过Windows用户帐户进行连接时,SQL Server通过回叫Windows 以获得信息,重新验证帐 户名和密码,并在sys.syslogins系统视图中查找该 帐户,以确定该帐户是否有权限登录。在这种方式 下,用户不必提供登录名和密码让SQL server验证。
描述
数据库拥有者,可以执行所有数据库角色的活动, 以及数据库中的其它维护和配置活动。 在数据库中添加或删除 Windows NT 4.0 或 Windows 2000组和用户以及 SQL Server 用户。 查看来自数据库中所有用户表的全部数据。 添加、更改或删除来自数据库中所有用户表的数据。 添加、修改或除去数据库中的对象(运行所有 DDL)。 管理 SQL Server 2005 数据库角色的角色和成员,并管 理数据库中的语句和对象权限。 有备份数据库的权限。 不允许查看数据库数据的权限。 不允许更改数据库数据的权限。 数据库中用户的所有默认权限。
3)使用CREATE LOGIN语句创建登录账户 )使用 语句创建登录账户
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> } 示例:创建一个使Windows用户myComputer\myName得以 连接到SQL Server 的登录账户。 CREATE LOGIN [myComputer\myName] FROM WINDOWS 示例:创建一个SQL Server 登录,登录名为lisi并指定密码 abcd。 CREATE LOGIN lisi WITH PASSWORD = 'abcd' 示例: CREATE LOGIN myLogin WITH PASSWORD = ‘123'
3)设置验证模式 )
可以使用SQL Server Management Studio来设 置或改变验证模式。
任务5-2:数据库登录的管理 任务 :
1、系统安装时创建的登录账户 、
SQL Server 2005安装好之后,系统会自动产生 一些系统内置登录账户。 本地管理员组(BUILT\Administrators)
2)混合验证模式 )
混合验证模式使用户能够通过Windows身份验证 或SQL Server身份验证与SQL Server实例连接。在 SQL Server验证模式下,SQL Server在 sys.syslogins系统视图中检测输入的登录名和密码。 如果在sys.syslogins视图中存在该登录名,并且密 码也是匹配的,那么该登录名可以登录到SQL Server;否则,登录失败。在这种方式下,用户必 须提供登录名和密码,让SQL server验证。
2)使用CREATE USER语句添加数据库用户 )使用 语句添加数据库用户
CREATE USER user_name { FOR | FROM } LOGIN login_name 示例:在Sales数据库中创建数据库用户myUser,其登录名为 myLogin。 Use Sales Go CREATE USER myUser FROM LOGIN myLogin
其语法格式为: sp_dropsrvrolemember 'login', 'role' 示例: sp_dropsrvrolemember ‘myLogin', ‘sysadmin'
3、固定数据库角色 、
固定数据库角色
db_owner db_accessadmin db_datareader db_datawriter db_ddladmin db_securityadmin db_backupoperator db_denydatareader db_denydatawriter Public
也可用存储过程sp_adduser创建数据库用户: 创建数据库用户: 也可用存储过程 创建数据库用户
3、查看数据库用户 、
1)使用SQL Server Management Studio查看数据库 用户 2)使用存储过程sp_helpuser查看数据库用户
4、删除数据库用户 、
1)使用SQL Server Management Studio删除数据库 用户 2)使用DROP USER语句删除数据库用户 格式为: DROP USER user_name 也可使用存储过程sp_dropuser删除数据库用户,格 式为: sp_dropuser ‘user’
也可用存储过程修改登录账户属性: 也可用存储过程修改登录账户属性:
拒绝Windows验证登录帐户的语法格式为:
sp_denylogin ‘login’
更改登录帐号密码的语法格式为:
sp_password ‘old_password’, ‘new_password’, ‘login’
3、查看登录账户 、
也可用存储过程创建登录账户: 也可用存储过程创建登录账户:
创建Windows验证登录的语法格式:
sp_grantlogin ‘login’
创建SQL Server验证登录的语法格式:
sp_addlogin ‘login’ [, ‘password’ [, ‘default_database’]]
3、修改登录账户 、
项目5: 项目 :数据库安全性及用户权限管理
任务5-1:SQL Server安全架构 任务5-2:数据库登录的管理 任务5-3:数据库用户的管理 任务5-4:数据库角色的管理 任务5-5:访问权限的管理
任务5-1:SQL Server安全架构 任务 : 安全架构
1、SQL Server的安全认证模式 、 的安全认证模式
1)使用SQL Server Management Studio给用户设 )使用 给用户设 置固定数据库角色功能。 置固定数据库角色功能。 2)使用存储过程sp_addrolemember给用户设置固 )使用存储过程 给用户设置固 定数据库角色功能。 定数据库角色功能。
其语法格式为: sp_addrolemember 'role', 'security_account' 其中: role:当前数据库中的数据库角色的名称。 security_account:是添加到该角色的用户。 示例: sp_addrolemember ‘db_datareader', ‘myUser'
3)Information_schema和sys用户 ) 和 用户
每个数据库中都包含Information_scheme和sys用 户,它们出现在目录视图中。使用它们获取有关 数据库的元数据信息。
2、创建数据库用Baidu Nhomakorabea 、
1)使用SQL Server Management Studio添加数据库 用户
示例:删除登录账户lisi_new。 DROP LOGIN lisi_new
也可用存储过程删除登录账户: 也可用存储过程删除登录账户:
删除Windows验证登录的语法格式:
sp_revokelogin ‘login’
删除SQL Server验证登录的语法格式:
sp_droplogin ‘login’
任务5-3:数据库用户的管理 任务 :
1、默认数据库用户 、
1)数据库所有者 (DataBase Owner,dbo)
dbo是数据库的所有者,拥有数据库中的所有对 象,每个数据库都有dbo,sysadmin服务器角色 的成员自动映射成dbo,无法删除 dbo 用户,且 此用户始终出现在每个数据库中。 通常,登录名sa映射为库中的用户dbo。另外, 由固定服务器角色 sysadmin 的任何成员创建的 任何对象都自动属于dbo。
2)GUEST用户 ) 用户
Guest 用户帐户允许没有用户帐户的登录名访问 数据库。 当登录名没有被映射到一个用户名上时,如果在 数据库中存在Guest用户,登录名将自动映射成 Guest,并获得相应的数据库访问权限。 Guest用户可以和其他用户一样设置权限,不能 删除Guest用户,但可在除master和tempdb之外 的任何数据库中禁用Guest用户。
用户想操作SQL Server中某一数据库中的数据, 必须满足以下3个条件:
首先,登录SQL Server服务器时必须通过身份验证; 其次,必须是该数据库的用户或者是某一数据库角色的成 员; 最后,必须有执行该操作的权限。 从上面三个条件可以看出SQL Server数据库的安全性检 查是通过 登录名、用户、权限来完成的。
1)使用SQL Server Management Studio修改登录账 户的属性
2)使用ALTER LOGIN语句修改登录账户属性 )使用 语句修改登录账户属性
ALTER LOGIN login_name {<status_option> | WITH <set_option> [ ,... ]} 示例:将lisi登录账户名称更改为lisi_new。 ALTER LOGIN lisi WITH NAME=lisi_new 示例:将lisi_new 登录账户的密码修改为“abcdef”。 ALTER LOGIN lisi_new WITH PASSWORD='abcdef'
默认属于sysadmin角色中的成员,因此具有管理员权限。
系统管理员 (sa)
默认情况下,它指派给固定服务器角色 sysadmin,并不能 进行更改。
2、创建登录账户 、
1)使用SQL Server Management Studio添加 Windows登录账户 2)使用SQL Server Management Studio添加SQL Server登录账户
1)使用SQL Server Management Studio给登录账 )使用 给登录账 户设置固定服务器角色功能。 户设置固定服务器角色功能。 2) 使用存储过程 ) 使用存储过程sp_addsrvrolemember给登录账 给登录账 户设置固定服务器角色功能。 户设置固定服务器角色功能。
其语法格式为: sp_addsrvrolemember 'login', 'role' 其中: login:添加到固定服务器角色中的登录名。 role:要添加登录名的固定服务器角色的名称。 示例: sp_addsrvrolemember ‘myLogin', ‘sysadmin'
任务5-4:数据库角色的管理 任务 :
1、角色的概念及分类 、
角色是为了易于管理而按相似的工作属性对用户 进行分组的一种方式。在SQL Server中,组是通过 角色来实现的。 在SQL Server中,角色分为服务器角色和数据 库角色两种。服务器角色是服务器级别的一个对象, 只能包含登录名。数据库角色是数据库级别的一个 对象,只能包含数据库用户名。
3)使用SQL Server Management Studio撤销给登 )使用 撤销给登 录账户所设置的服务器角色功能。 录账户所设置的服务器角色功能。 4)使用存储过程 ) 使用存储过程sp_dropsrvrolemember撤销给登 撤销给登 录账户所设置的服务器角色功能。 录账户所设置的服务器角色功能。
2、固定服务器角色 、
固定服务器角色
Sysadmin Serveradmin Setupadmin Securityadmin Processadmin Dbcreator Diskadmin bulkadmin
描述
在 SQL Server 中执行任何活动。 配置服务器范围的设置。 添加和删除链接服务器,并执行某些系统 存储 过程(如 sp_serveroption)。 管理服务器登录。 管理在 SQL Server 实例中运行的进程。 创建和改变数据库。 管理磁盘文件。 执行 BULK INSERT(大容量插入)语句。
4、删除登录账户 、
1)使用SQL Server Management Studio删除登录账 户 2)使用DROP LOGIN 语句删除登录账户 DROP LOGIN login_name
2、两种身份验证模式 、
Windows身份验证模式 混合验证模式
1)Windows身份验证模式 ) 身份验证模式
当用户通过Windows用户帐户进行连接时,SQL Server通过回叫Windows 以获得信息,重新验证帐 户名和密码,并在sys.syslogins系统视图中查找该 帐户,以确定该帐户是否有权限登录。在这种方式 下,用户不必提供登录名和密码让SQL server验证。
描述
数据库拥有者,可以执行所有数据库角色的活动, 以及数据库中的其它维护和配置活动。 在数据库中添加或删除 Windows NT 4.0 或 Windows 2000组和用户以及 SQL Server 用户。 查看来自数据库中所有用户表的全部数据。 添加、更改或删除来自数据库中所有用户表的数据。 添加、修改或除去数据库中的对象(运行所有 DDL)。 管理 SQL Server 2005 数据库角色的角色和成员,并管 理数据库中的语句和对象权限。 有备份数据库的权限。 不允许查看数据库数据的权限。 不允许更改数据库数据的权限。 数据库中用户的所有默认权限。
3)使用CREATE LOGIN语句创建登录账户 )使用 语句创建登录账户
CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> } 示例:创建一个使Windows用户myComputer\myName得以 连接到SQL Server 的登录账户。 CREATE LOGIN [myComputer\myName] FROM WINDOWS 示例:创建一个SQL Server 登录,登录名为lisi并指定密码 abcd。 CREATE LOGIN lisi WITH PASSWORD = 'abcd' 示例: CREATE LOGIN myLogin WITH PASSWORD = ‘123'
3)设置验证模式 )
可以使用SQL Server Management Studio来设 置或改变验证模式。
任务5-2:数据库登录的管理 任务 :
1、系统安装时创建的登录账户 、
SQL Server 2005安装好之后,系统会自动产生 一些系统内置登录账户。 本地管理员组(BUILT\Administrators)
2)混合验证模式 )
混合验证模式使用户能够通过Windows身份验证 或SQL Server身份验证与SQL Server实例连接。在 SQL Server验证模式下,SQL Server在 sys.syslogins系统视图中检测输入的登录名和密码。 如果在sys.syslogins视图中存在该登录名,并且密 码也是匹配的,那么该登录名可以登录到SQL Server;否则,登录失败。在这种方式下,用户必 须提供登录名和密码,让SQL server验证。
2)使用CREATE USER语句添加数据库用户 )使用 语句添加数据库用户
CREATE USER user_name { FOR | FROM } LOGIN login_name 示例:在Sales数据库中创建数据库用户myUser,其登录名为 myLogin。 Use Sales Go CREATE USER myUser FROM LOGIN myLogin
其语法格式为: sp_dropsrvrolemember 'login', 'role' 示例: sp_dropsrvrolemember ‘myLogin', ‘sysadmin'
3、固定数据库角色 、
固定数据库角色
db_owner db_accessadmin db_datareader db_datawriter db_ddladmin db_securityadmin db_backupoperator db_denydatareader db_denydatawriter Public
也可用存储过程sp_adduser创建数据库用户: 创建数据库用户: 也可用存储过程 创建数据库用户
3、查看数据库用户 、
1)使用SQL Server Management Studio查看数据库 用户 2)使用存储过程sp_helpuser查看数据库用户
4、删除数据库用户 、
1)使用SQL Server Management Studio删除数据库 用户 2)使用DROP USER语句删除数据库用户 格式为: DROP USER user_name 也可使用存储过程sp_dropuser删除数据库用户,格 式为: sp_dropuser ‘user’
也可用存储过程修改登录账户属性: 也可用存储过程修改登录账户属性:
拒绝Windows验证登录帐户的语法格式为:
sp_denylogin ‘login’
更改登录帐号密码的语法格式为:
sp_password ‘old_password’, ‘new_password’, ‘login’
3、查看登录账户 、
也可用存储过程创建登录账户: 也可用存储过程创建登录账户:
创建Windows验证登录的语法格式:
sp_grantlogin ‘login’
创建SQL Server验证登录的语法格式:
sp_addlogin ‘login’ [, ‘password’ [, ‘default_database’]]
3、修改登录账户 、
项目5: 项目 :数据库安全性及用户权限管理
任务5-1:SQL Server安全架构 任务5-2:数据库登录的管理 任务5-3:数据库用户的管理 任务5-4:数据库角色的管理 任务5-5:访问权限的管理
任务5-1:SQL Server安全架构 任务 : 安全架构
1、SQL Server的安全认证模式 、 的安全认证模式
1)使用SQL Server Management Studio给用户设 )使用 给用户设 置固定数据库角色功能。 置固定数据库角色功能。 2)使用存储过程sp_addrolemember给用户设置固 )使用存储过程 给用户设置固 定数据库角色功能。 定数据库角色功能。
其语法格式为: sp_addrolemember 'role', 'security_account' 其中: role:当前数据库中的数据库角色的名称。 security_account:是添加到该角色的用户。 示例: sp_addrolemember ‘db_datareader', ‘myUser'
3)Information_schema和sys用户 ) 和 用户
每个数据库中都包含Information_scheme和sys用 户,它们出现在目录视图中。使用它们获取有关 数据库的元数据信息。
2、创建数据库用Baidu Nhomakorabea 、
1)使用SQL Server Management Studio添加数据库 用户
示例:删除登录账户lisi_new。 DROP LOGIN lisi_new
也可用存储过程删除登录账户: 也可用存储过程删除登录账户:
删除Windows验证登录的语法格式:
sp_revokelogin ‘login’
删除SQL Server验证登录的语法格式:
sp_droplogin ‘login’
任务5-3:数据库用户的管理 任务 :
1、默认数据库用户 、
1)数据库所有者 (DataBase Owner,dbo)
dbo是数据库的所有者,拥有数据库中的所有对 象,每个数据库都有dbo,sysadmin服务器角色 的成员自动映射成dbo,无法删除 dbo 用户,且 此用户始终出现在每个数据库中。 通常,登录名sa映射为库中的用户dbo。另外, 由固定服务器角色 sysadmin 的任何成员创建的 任何对象都自动属于dbo。
2)GUEST用户 ) 用户
Guest 用户帐户允许没有用户帐户的登录名访问 数据库。 当登录名没有被映射到一个用户名上时,如果在 数据库中存在Guest用户,登录名将自动映射成 Guest,并获得相应的数据库访问权限。 Guest用户可以和其他用户一样设置权限,不能 删除Guest用户,但可在除master和tempdb之外 的任何数据库中禁用Guest用户。
用户想操作SQL Server中某一数据库中的数据, 必须满足以下3个条件:
首先,登录SQL Server服务器时必须通过身份验证; 其次,必须是该数据库的用户或者是某一数据库角色的成 员; 最后,必须有执行该操作的权限。 从上面三个条件可以看出SQL Server数据库的安全性检 查是通过 登录名、用户、权限来完成的。
1)使用SQL Server Management Studio修改登录账 户的属性
2)使用ALTER LOGIN语句修改登录账户属性 )使用 语句修改登录账户属性
ALTER LOGIN login_name {<status_option> | WITH <set_option> [ ,... ]} 示例:将lisi登录账户名称更改为lisi_new。 ALTER LOGIN lisi WITH NAME=lisi_new 示例:将lisi_new 登录账户的密码修改为“abcdef”。 ALTER LOGIN lisi_new WITH PASSWORD='abcdef'
默认属于sysadmin角色中的成员,因此具有管理员权限。
系统管理员 (sa)
默认情况下,它指派给固定服务器角色 sysadmin,并不能 进行更改。
2、创建登录账户 、
1)使用SQL Server Management Studio添加 Windows登录账户 2)使用SQL Server Management Studio添加SQL Server登录账户
1)使用SQL Server Management Studio给登录账 )使用 给登录账 户设置固定服务器角色功能。 户设置固定服务器角色功能。 2) 使用存储过程 ) 使用存储过程sp_addsrvrolemember给登录账 给登录账 户设置固定服务器角色功能。 户设置固定服务器角色功能。
其语法格式为: sp_addsrvrolemember 'login', 'role' 其中: login:添加到固定服务器角色中的登录名。 role:要添加登录名的固定服务器角色的名称。 示例: sp_addsrvrolemember ‘myLogin', ‘sysadmin'
任务5-4:数据库角色的管理 任务 :
1、角色的概念及分类 、
角色是为了易于管理而按相似的工作属性对用户 进行分组的一种方式。在SQL Server中,组是通过 角色来实现的。 在SQL Server中,角色分为服务器角色和数据 库角色两种。服务器角色是服务器级别的一个对象, 只能包含登录名。数据库角色是数据库级别的一个 对象,只能包含数据库用户名。
3)使用SQL Server Management Studio撤销给登 )使用 撤销给登 录账户所设置的服务器角色功能。 录账户所设置的服务器角色功能。 4)使用存储过程 ) 使用存储过程sp_dropsrvrolemember撤销给登 撤销给登 录账户所设置的服务器角色功能。 录账户所设置的服务器角色功能。
2、固定服务器角色 、
固定服务器角色
Sysadmin Serveradmin Setupadmin Securityadmin Processadmin Dbcreator Diskadmin bulkadmin
描述
在 SQL Server 中执行任何活动。 配置服务器范围的设置。 添加和删除链接服务器,并执行某些系统 存储 过程(如 sp_serveroption)。 管理服务器登录。 管理在 SQL Server 实例中运行的进程。 创建和改变数据库。 管理磁盘文件。 执行 BULK INSERT(大容量插入)语句。