第12章 SQL Server2000数据库 的安全性管理 12.1对 SQL Server的访问 12.2数据库的安全性权限 12.3角色 12.4与安全有关的 Transact-s0L语包 12.5视图与数据访 12.6存储过程与数据访
第12章 SQL Server 2000数据库 的安全性管理 12.1对SQL Server的访问 12.2数据库的安全性权限 12.3角色 12.4与安全有关的Transact-SQL语句 12.5 视图与数据访问 12.6存储过程与数据访问
第12章 SQL Server2000数据库的安全性管理 SQL Server的安全性管理是建立在登录验证和权限许可的基础上 的。登录验证是指核对连接到 SQL Server实例的登录帐户名和密 码是否正确,以此确定用户是否具有连接到 SQL Server实例的权 限。通过了登录验证,并不意味着用户能够访问 SQL Server实例 中的各个数据库。用户只有在被授于访问数据库的权限许可之后 才能够对服务器上的数据库进行权限许可下的各种操作。 SQL Server还引入了角色的概念,来简化对权限许可的管理, 在 SQL Server中,安全性管理可以通过企业管理器的图形界面进 行,但对于熟练的DBA来说,使用 Transact-SQ语句进行安全性 管理可能更有效率。 在 SQL Server中,通过使用视图和存储过程也可以控制用户对数 据的访问,实现对数据安全管理。 返回目录
第12章 SQL Server 2000数据库的安全性管理 • SQL Server的安全性管理是建立在登录验证和权限许可的基础上 的。登录验证是指核对连接到SQL Server实例的登录帐户名和密 码是否正确,以此确定用户是否具有连接到SQL Server实例的权 限。通过了登录验证,并不意味着用户能够访问SQL Server实例 中的各个数据库。用户只有在被授于访问数据库的权限许可之后 才能够对服务器上的数据库进行权限许可下的各种操作。 • SQL Server还引入了角色的概念,来简化对权限许可的管理, • 在SQL Server中,安全性管理可以通过企业管理器的图形界面进 行,但对于熟练的DBA来说,使用Transact-SQL语句进行安全性 管理可能更有效率。。 • 在SQL Server中,通过使用视图和存储过程也可以控制用户对数 据的访问,实现对数据安全管理。 • 返回目录
121对 SQL Server的访问 在 SQL Server2000中,用登录帐户来控制用户是否具有连接到 SQL Server实例的权限。用数据库用户帐户来控制用户是否具有 操纵 SQL Server实例中的各个数据库的权限。而对用户身份的验 证,是通过核对登录帐户名和密码是否正确来完成的 1.身份验证模式( Authentication modes) SQL Serveri能在两种身份验证模式下运行: Windows身份验证模式 和混合模式。在 Windows身份验证模式下, SQL Server依靠 Windows身份验证来验证用户的身份。在混合模式下,SQL Server依靠 Windows身份验证或 SQL Server身份验证来验证用户的 身份 (1) Windows身份验证模式 (2)混合模式 在混合模式下,用户既可以使用 Windows身份验证,也可以使用 SQL Server身份验证。 使用 SQL Server身份验证时,用户必须提供登录帐户名和密码, 这里的登录帐户是数据库管理员在 SQL Server中创建并分配给用 户的 (3)配置身份验证模式
12.1对SQL Server的访问 • 在SQL Server 2000中,用登录帐户来控制用户是否具有连接到 SQL Server实例的权限。用数据库用户帐户来控制用户是否具有 操纵SQL Server实例中的各个数据库的权限。而对用户身份的验 证,是通过核对登录帐户名和密码是否正确来完成的。 • 1.身份验证模式(Authentication Modes) • SQL Server能在两种身份验证模式下运行:Windows身份验证模式 和混合模式。在Windows身份验证模式下,SQL Server依靠 Windows 身份验证来验证用户的身份。在混合模式下,SQL Server依靠Windows 身份验证或SQL Server身份验证来验证用户的 身份。 • (1)Windows身份验证模式 • (2)混合模式 • 在混合模式下,用户既可以使用 Windows 身份验证,也可以使用 SQL Server身份验证。 • 使用SQL Server身份验证时,用户必须提供登录帐户名和密码, 这里的登录帐户是数据库管理员在SQL Server中创建并分配给用 户的 • (3) 配置身份验证模式 返回目录
2.登录帐户( logins)和数据库用户帐户( database users SQL Server用数据库用户帐户来指出哪一个人可以访问哪一个数据库。用 户对数据的访问权限以及与数据库对象的所有关系都是通过用户账号来 控制的。数据库用户帐户通常是由数据库管理员在 SQL Server实例的各个 数据库中创建的。 个登录账号总是与一个或多个数据库用户账号相关联。这个关联工作 由数据库管理员在为用户新建登录账户或修改登录帐户属性时完成的 但对于一些特殊登录帐户,这个过程是由SQL服务器自动完成的。如:sa 是 SQL Server内置的管理员登录账号,sa登录账号自动与每一个数据库的 dbo用户相关联。 数据库用户账号总是与某一登录账号相关联的,但有一个例外,那就是 guest用户。 Guest,用户不具体与某一登录帐户相关联,但 Guest用户允许没 有与用户帐户关联的登录帐户访问数据库。 ·用户访问 SQL Server实例中的某一数据库, SQL Server检査该登录用户是 否与该数据库中的某一用户帐户相关联,如果有,则允许它以该用户帐 户访问数据库;如果没有,则 SQL Server检查该数据库中是否有 guest用户, 如果有,则允许用户以 guest用户来访问该数据库,如果没有,则该用户 对该数据库的访问被拒绝。在安装 SQL Server时,系统自动在 master pubs、 tempdb和 Northwind数据库中创建 guest用
• 2.登录帐户(logins)和数据库用户帐户(database users) • SQL Server用数据库用户帐户来指出哪一个人可以访问哪一个数据库。用 户对数据的访问权限以及与数据库对象的所有关系都是通过用户账号来 控制的。数据库用户帐户通常是由数据库管理员在SQL Server实例的各个 数据库中创建的。 • 一个登录账号总是与一个或多个数据库用户账号相关联。这个关联工作, 由数据库管理员在为用户新建登录账户或修改登录帐户属性时完成的。 但对于一些特殊登录帐户,这个过程是由SQL服务器自动完成的。如:sa 是SQL Server内置的管理员登录账号,sa登录账号自动与每一个数据库的 dbo用户相关联。 • 数据库用户账号总是与某一登录账号相关联的,但有一个例外,那就是 guest用户。Guest用户不具体与某一登录帐户相关联,但Guest用户允许没 有与用户帐户关联的登录帐户访问数据库。 • 用户访问SQL Server实例中的某一数据库,SQL Server检查该登录用户是 否与该数据库中的某一用户帐户相关联,如果有,则允许它以该用户帐 户访问数据库;如果没有,则SQL Server检查该数据库中是否有guest用户, 如果有,则允许用户以guest用户来访问该数据库,如果没有,则该用户 对该数据库的访问被拒绝。在安装SQL Server时,系统自动在master、 pubs、 tempdb 和 Northwind 数据库中创建guest用户。 • 返回目录
(1)创建登录帐户 ·创建登录帐户的方法有三种:使用企业管理器、使用 Transact-SQL语句、使用创建登录向导。 (2)授予 Windows nt2000用户或组连接 SQL Server的 权限 在 Windows nt/2000帐户(用户或组)可以访问数据库之 前,必须授予它们连接到 SQL Server实例的权限。 (3)创建数据库用户帐户 可以使用企业管理器或 Transact-SQL语句来创建数据库 用户帐户,也可以使用企业管理器来创建数据库用户帐 户。为了创建一个新的数据库用户帐户,必须事先确 定一个将与该数据库用户相关的登录帐户
• (1) 创建登录帐户 • 创建登录帐户的方法有三种:使用企业管理器、使用 Transact-SQL语句、使用创建登录向导。 • (2) 授予Windows NT/2000用户或组连接SQL Server的 权限 • 在Windows NT/2000帐户(用户或组)可以访问数据库之 前,必须授予它们连接到 SQL Server实例的权限。 • (3) 创建数据库用户帐户 • 可以使用企业管理器或Transact-SQL语句来创建数据库 用户帐户,也可以使用企业管理器来创建数据库用户帐 户。为了创建一个新的数据库用户帐户,必须事先确 定一个将与该数据库用户相关的登录帐户。 • 返回目录
(4)sa登录帐号、dbo数据库用户帐号及数据库对象所有者。 系统管理员( System Administrator)登录帐号sa是为向后兼容而 提供的特殊登录。sa是 SQL Server自动创建的、内置的登录帐号, 不能被删除。默认情况下,sa被授予固定服务器角色 sysadmin, 可以在 SQL Server中进行任何活动。 dbo是 SQL Server自动创建的、内置的数据库用户帐号,具有在数 据库中执行所有活动的权限。 SQL Server将固定服务器角色 sysadmin的任何成员都映射到每个数据库内的dbo用户上。另外 由固定服务器角色 sysadmin的任何成员创建的任何对象都自动属 于dbo。 创建数据库对象的用户称为数据库对象所有者。创建数据库对象 的权限必须由数据库所有者或系统管理员授予。数据库对象所有 者可以授予其他用户访问其所创建的对象的权限。数据库对象所 有者没有特殊的登录⑩或密码。对象创建者在创建对象时,被 隐性地授予该对象的所有权限,但其他用户必须被显式授予权限 后才能访问该对象。 返回目录
• (4) sa登录帐号、dbo数据库用户帐号及数据库对象所有者。 • 系统管理员(System Administrator)登录帐号sa 是为向后兼容而 提供的特殊登录。sa是SQL Server自动创建的、内置的登录帐号, 不能被删除。默认情况下,sa被授予固定服务器角色sysadmin, 可以在SQL Server 中进行任何活动。 • dbo是SQL Server自动创建的、内置的数据库用户帐号,具有在数 据库中执行所有活动的权限。SQL Server将固定服务器角色 sysadmin 的任何成员都映射到每个数据库内的dbo用户上。另外, 由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属 于dbo。 • 创建数据库对象的用户称为数据库对象所有者。创建数据库对象 的权限必须由数据库所有者或系统管理员授予。数据库对象所有 者可以授予其他用户访问其所创建的对象的权限。数据库对象所 有者没有特殊的登录 ID 或密码。对象创建者在创建对象时,被 隐性地授予该对象的所有权限,但其他用户必须被显式授予权限 后才能访问该对象。 • 返回目录
142数据库的安全性权限 SQL Server通过为用户分配权限来决定用户能够执行什么样的数据库 操作。在 SQL Server中,可以为用户设置服务器权限和数据库权限。 数据库权限又分为对象权限和语句权限 1.服务器权限 服务器权限用来为数据库管理员分配执行数据库管理任务的许可。 服务器权限被预先赋于固定的服务器角色,为用户的登录帐户分配 某一服务器角色,则用户具有该服务器角色所具有的服务器权限。 服务器权限包括:关闭数据库系统、新建数据库,备份数据库等等。 2.数据库对象权限 对象权限是用户在处理数据或执行过程时需要的权限。可以使用企 业管理器或 Transact-SQL语句为用户分配对象权限。在企业管理器中 分配对象权限的方法有两种,一种是针对用户来分配对象权限,另 种是针对数据库对象来分配对象权限 (1)对象权限的类型:对象权限主要有 SELECT、 UPDATE、 INSERT、 DELETE、 EXECUTE等几种类型
14.2 数据库的安全性权限 • SQL Server通过为用户分配权限来决定用户能够执行什么样的数据库 操作。在SQL Server中,可以为用户设置服务器权限和数据库权限。 数据库权限又分为对象权限和语句权限。 • 1.服务器权限 • 服务器权限用来为数据库管理员分配执行数据库管理任务的许可。 服务器权限被预先赋于固定的服务器角色,为用户的登录帐户分配 某一服务器角色,则用户具有该服务器角色所具有的服务器权限。 服务器权限包括:关闭数据库系统、新建数据库,备份数据库等等。 • 2.数据库对象权限 • 对象权限是用户在处理数据或执行过程时需要的权限。可以使用企 业管理器或Transact-SQL语句为用户分配对象权限。在企业管理器中 分配对象权限的方法有两种,一种是针对用户来分配对象权限,另 一种是针对数据库对象来分配对象权限。 • (1) 对象权限的类型:对象权限主要有SELECT、UPDATE、INSERT、 DELETE、EXECUTE等几种类型。 • 返回目录
(2)基于用户管理对象权限 基于用户管理对象权限,可以方便地为用户分配多个 数据库对象的对象权限。可以使用企业管理器针对用 户来分配对象权限。 (3)基于数据库对象管理对象权限 基于数据库对象管理对象权限,可以方便地为多个用 户分配数据库对象的对象权限。可以使用企业管理器 针对数据库对象来分配对象权限。 返回目录
• (2) 基于用户管理对象权限 • 基于用户管理对象权限,可以方便地为用户分配多个 数据库对象的对象权限。可以使用企业管理器针对用 户来分配对象权限。 • (3) 基于数据库对象管理对象权限。 • 基于数据库对象管理对象权限,可以方便地为多个用 户分配数据库对象的对象权限。可以使用企业管理器 针对数据库对象来分配对象权限。 • 返回目录
3.数据库语句权限 对象权限使用户能够访问数据库中已经存在数据库对象。语 句权限则使用户可以创建数据库和数据库对象。例如,如果用户 要在数据库中创建表,则应该向该用户授予 CREATE TABLE语句 权限。语句权限(如 CREATE DATABASE)适用于语句自身,而 不适用于特定数据库对象。语句权限有: ① BACKUP DATABASE权限,允许用户执行 BACKUP DATABASE命令。 ② BACKUP LOG权限,允许用户执行 BACKUP LOG命令 ③ CREATE DATABASE权限,允许用户创建数据库。 ④ CREATE DEFAULT权限,允许用户创建列的缺省值。 ⑤ CREATE FUNCTION权限,允许用户创建函数。 ① CREATE PROCEDURE权限,允许用户创建存储过程。 ② CREATE RULE权限,允许用户创建规则 ·③ CREATE TABLE权限,允许用户创建表 ④ CREATE VIEW权限,允许用户创建视图 可以使用企业管理器或 Transact-SQ语句为用户分配语句权限。 返回目录
• 3.数据库语句权限 • 对象权限使用户能够访问数据库中已经存在数据库对象。语 句权限则使用户可以创建数据库和数据库对象。例如,如果用户 要在数据库中创建表,则应该向该用户授予 CREATE TABLE语句 权限。语句权限(如 CREATE DATABASE)适用于语句自身,而 不适用于特定数据库对象。语句权限有: • ① BACKUP DATABASE 权 限 , 允 许 用 户 执 行 BACKUP DATABASE命令。 • ② BACKUP LOG权限,允许用户执行BACKUPLOG命令 • ③ CREATE DATABASE权限,允许用户创建数据库。 • ④ CREATE DEFAULT权限,允许用户创建列的缺省值。 • ⑤ CREATE FUNCTION权限,允许用户创建函数。 • ① CREATE PROCEDURE权限,允许用户创建存储过程。 • ② CREATE RULE权限,允许用户创建规则。 • ③ CREATE TABLE权限,允许用户创建表。 • ④ CREATE VIEW权限,允许用户创建视图。 • 可以使用企业管理器或Transact-SQL语句为用户分配语句权限。 • 返回目录
123角色 角色用来为成组的用户赋于相同的数据库权限,而不需要为每个 用户单独赋权。用户可以根据管理需要,划分和创建出几种权限 不同的角色,并将相应的数据库权限授于各个角色,然后可以将 角色赋于一个或多个数据库用户帐户,这样,这些数据库用户帐 户就具有了该角色所具有的权限。 1.角色的类型 在 SQL Server中,角色有两种类型:服务器角色和数据库角色。 (1)服务器角色 ·服务器角色是由 SQL Server自动创建的,是固定的,不能被删除, 其权限也不能被修改,用户也不能创建新的服务器角色。 SQL Server根据 SQL Server服务器管理任务的不同,预定义了8种 固定的服务器角色,它们是: sysadmin角色、 serveradmin角色、 setupadmin角色、 securityadmin角色、 processadmin角色 dbcreator角色、 diskadmin角色、 bulkadmin角色
12.3 角色 • 角色用来为成组的用户赋于相同的数据库权限,而不需要为每个 用户单独赋权。用户可以根据管理需要,划分和创建出几种权限 不同的角色,并将相应的数据库权限授于各个角色,然后可以将 角色赋于一个或多个数据库用户帐户,这样,这些数据库用户帐 户就具有了该角色所具有的权限。。 • 1.角色的类型 • 在SQL Server中,角色有两种类型:服务器角色和数据库角色。 • (1) 服务器角色 • 服务器角色是由SQL Server自动创建的,是固定的,不能被删除, 其权限也不能被修改,用户也不能创建新的服务器角色。 • SQL Server根据SQL Server服务器管理任务的不同,预定义了8种 固定的服务器角色,它们是: sysadmin角色、 serveradmin角色、 setupadmin 角 色 、 securityadmin 角 色 、 processadmin 角 色 、 dbcreator角色、diskadmin角色、 bulkadmin角色。 • 返回目录