《SQLServer数据库的安全管理.ppt》由会员分享,可在线阅读,更多相关《SQLServer数据库的安全管理.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQLServer数据库的安全管理 本章内容:注册服务器、SQLServer的安全性重点:安全性问题难点:固定数据库角色、创建自定义数据库角色安全管理一注册SQLServer的服务器(一)注册服务器在SQL Server 中可以使用注册属性对话框方式来注册服务器。注册服务器的过程如下:(1)在企业服务管理器中,右击一个服务器或服务器组,然后单击“新建 SQL Server 注册”命令。出现如图11-1所示的画面。图11-1注册服务器向导安全管理说说明明:如如果果上上次次使使用用注注册册服服务务器器向向导导时时,选选择择“我我希希望望今今后后在在执执行行该该任任务务时时不不使使用用向向导导”复复
2、选选框框,则则SQL SQL Server Server 企企业业管管理理器器将将显显示示“已已注注册册的的 SQL Server SQL Server 属性属性”对话框;否则,将启动注册服务器向导。对话框;否则,将启动注册服务器向导。(2 2)单单击击“下下一一步步”按按钮钮,进进入入如如图图11-211-2所所示示的的创创建建服服务务器器名名称称对对话话框框。选选择择可可用用的的服服务务器器,单单击击“添添加加”按按钮钮,则则服服务务器器被被添添加加到到右右边边的的方方框框中。中。(3)单击)单击“下一步下一步”按钮,进入如图按钮,进入如图11-3所示的选择认证方式对话框。所示的选择认证方
3、式对话框。图11-2选择或创建服务器名称图11-3选择身份认证安全管理单单击击“使使用用WindowsWindows身身份份验验证证”或或单单击击“使使用用SQL SQL Server Server 身身份份验验证证”单单选选按钮。按钮。(4 4)继续)继续“下一步下一步”按钮,输入按钮,输入SQL Server SQL Server 账号和口令。如图账号和口令。如图11-411-4所示。所示。使使用用这这种种类类型型的的连连接接,必必须须提提供供登登录录名名和和密密码码。选选择择“在在连连接接时时提提示示输输入入SQL SQL ServerServer账账户户信信息息”复复选选框框,便便总总
4、是是提提示示用用户户输输入入登登录录名名和和密密码码,而而不将登录不将登录IDID和密码保存在注册表中。和密码保存在注册表中。(5)继续)继续“下一步下一步”按钮,选择服务器组或创建服务器组,如图按钮,选择服务器组或创建服务器组,如图11-5所示。所示。图11-4输入账号和口令图11-5创建或选择服务器组安全管理(6)出现如图)出现如图11-6所示的确认注册对话框,单击所示的确认注册对话框,单击“完成完成”按钮。最后出现按钮。最后出现注册服务器信息对话框以确认结束设置,如图注册服务器信息对话框以确认结束设置,如图11-7所示。所示。图11-6 完成注册服务器 图11-7 注册信息对话框安全管理
5、(二)创建服务器组在企业管理服务器中创建服务器组的步骤如下:(1)右击一个服务器组,然后单击“新建 SQL Server 组”命令。出现如图11-8所示的对话框。图11-8 注册服务器组(2)在“名称”框中,为该新组输入惟一名称。从下列组级别中选择:顶层组。下面项目子组:如果选择了此选项,则需要选择一个希望新组位于其下的顶层组。安全管理(三)删除服务器从企业管理器的树型结构上删除服务器的步骤如下:(1)在企业管理器的树型结构上选中要删除的服务器。(2)从操作菜单或者从快捷菜单中选择“删除SQL Server注册”命令。(3)在弹出的提示对话中选择“是”按钮即可。安全管理二二SQLServerS
6、QLServer数据库的安全性数据库的安全性(一)添加数据库用户(一)添加数据库用户1 1使用企业管理器添加数据库用户使用企业管理器添加数据库用户使用企业管理器添加一个数据库用户的步骤如下:使用企业管理器添加一个数据库用户的步骤如下:(1 1)在企业管理器中,展开服务器组,再展开服务器。)在企业管理器中,展开服务器组,再展开服务器。(2 2)展展开开数数据据库库文文件件夹夹,再再展展开开要要添添加加的的数数据据库库。用用鼠鼠标标单单击击用用户户目目录录,在弹出的快捷菜单中选择在弹出的快捷菜单中选择“新建数据库用户新建数据库用户”命令,如图命令,如图8-88-8所示。所示。图8-8新建数据库用户
7、安全管理(3)打开如图8-9所示的新建数据库用户对话框。(4)从登录名下拉列表框中选择一个登录账号。(5)在用户名框中输入用户名。(6)单击“确定”按钮。图8-9新建数据库用户对话框安全管理2使用T-SQL语句添加数据库用户使用T-SQL语句添加数据库用户需要使用存储过程sp_grantdbacess。语法格式为:sp_grantdbaccess loginame=账户名,name_in_db=数据库用户名 OUTPUT【例7】在当前数据库中为 Windows NT账户 CorporateGeorgeW 添加用户,并取名为Georgie。exec sp_grantdbaccess Corpor
8、ateGeorgeW,Georgie(二)删除数据库用户1使用企业管理器删除数据库用户在企业管理器中,选中用户图标则在右面的窗格中显示当前的所有用户,如图8-10所示。在右面的窗格中右击想要删除的数据库用户,则会弹出快捷菜单,然后选择“删除”命令,则会从当前数据库中删除该用户。2使用T-SQL语句删除数据库用户使用T-SQL语句删除数据库用户需要使用存储过程sp_revokedbaccess。语法格式为:sp_revokedbaccessname_in_db=数据库用户名安全管理【例例8】从当前数据库中删除账户】从当前数据库中删除账户 CorporateCorporateGeorgeWGeor
9、geW。exec sp_exec sp_revokedbaccessrevokedbaccess Corporate CorporateGeorgeWGeorgeW图8-10删除数据库用户安全管理(三)特殊数据库用户SQL Server 2000的数据库级别上也存在着2个特殊的数据库用户,分别是dbo和guest。Dbo是数据库对象所有者,在安装SQL Server 2000时被设置到model数据库中的,而且不能被删除,所以dbo在每个数据库中都存在,具有数据库的最高权力,可以在数据库范围内执行一切操作。Dbo用户对应于创建该数据库的登录用户,所以所有系统数据库的dbo都对应于sa账户。gu
10、est用户账户允许没有账户的用户登录访问数据库。可以将权限应用到 guest 用户,就如同它是任何其他用户账户一样。可以在除 master 和 tempdb 外(在这两个数据库中它必须始终存在)的所有数据库中添加或删除 guest 用户。默认情况下,新建的数据库中没有 guest 用户账户。【例9】若要将 guest 用户账户添加到名为 Accounts 的数据库中,请在 SQL 查询分析器中运行下列代码:use accountsgoexecute sp_grantdbaccess guest安全管理(四)固定数据库角色每个数据库都有一系列固定数据库角色。虽然每个数据库中都存在名称相同的角色,
11、但各个角色的作用域只是在特定的数据库内。例如,如果 Database1 和 Database2 中都有叫做UserX 的用户 ID,将 Database1 中的 UserX 添加到 Database1 的 db_owner 固定数据库角色中,对 Database2 中的 UserX 是否是 Database2 的 db_owner 角色成员没有任何影响。下面是固定数据库角色描述。db_owner db_owner 在数据库中有全部权限。在数据库中有全部权限。db_db_accessadmin accessadmin 可以添加或删除用户可以添加或删除用户 IDID。db_db_securitya
12、dmin securityadmin 可可以以管管理理全全部部权权限限、对对象象所所有有权权、角角色色和和角色成员资格。角色成员资格。db_db_ddladmin ddladmin 可可以以发发出出 ALL ALL DDLDDL,但但不不能能发发出出 GRANTGRANT、REVOKE REVOKE 或或 DENY DENY 语句。语句。db_db_backupoperator backupoperator 可可以以发发出出 DBCCDBCC、CHECKPOINT CHECKPOINT 和和 BACKUP BACKUP 语句。语句。db_db_datareader datareader 可以选
13、择数据库内任何用户表中的所有数据。可以选择数据库内任何用户表中的所有数据。db_db_datawriter datawriter 可以更改数据库内任何用户表中的所有数据。可以更改数据库内任何用户表中的所有数据。db_db_denydatareader denydatareader 不不能能选选择择数数据据库库内内任任何何用用户户表表中中的的任任何何数数据。据。db_denydatawriter不能更改数据库内任何用户表中的任何数据。不能更改数据库内任何用户表中的任何数据。安全管理可以从 sp_helpdbfixedrole 获得固定数据库角色的列表,可以从 sp_dbfixedroleperm
14、ission 获得每个角色的特定权限。数据库中的每个用户都属于 public 数据库角色。如果想让数据库中的每个用户都能有某个特定的权限,则将该权限指派给 public 角色。如果没有给用户专门授予对某个对象的 权限,他们就使用指派给 public 角色的权限。(五)创建自定义数据库角色当一组用户需要在 SQL Server 中执行一组指定的活动时,没有适用的 Microsoft Windows NT/2000组,没 有 管 理 Windows NT 4.0 或 Windows 2000 用户账户的权限。这时需要创建SQL Server数据库角色。例如,一个公司可能成立慈善活动委员会,其中包括
15、来自不同部门,来自组织中各种不同级别的职员。这些职员需要访问数据库中特殊的项目表。没有只包括这些职员的现有 Windows NT 4.0 或 Windows 2000 组,而且没有其他理由在 Windows NT 4.0 或 Windows 2000中创建这样一个组。可以为此项目创建一个自定义 SQL Server 数据库角色CharityEvent,并将个别的 Windows NT 和 Windows 2000 用户添加到此数据库角色。当应用权限后,数据库角色中的用户便获得对表的访问权限。其他数据库活动的权限不受影响,只有CharityEvent用户可以使用该项目表。安全管理1用企业管理器创
16、建数据库角色使用企业管理器创建数据库角色的步骤如下:(1)在企业管理器中找到要创建角色的数据库。(2)展开数据库。用鼠标右键单击角色,在弹出的快捷菜单中选择“新建数据库角色”命令,如图8-11所示。(3)在打开的新建数据库角色对话框中,在名称框中输入数据库角色的名称,选中“标准角色”单选按钮,如图8-12所示。(4)在图8-12中单击“添加“按钮,可以为角色添加用户,也可省略创建一个暂无成员的角色。安全管理图8-11创建数据库角色安全管理权限管理使用T-SQL 语句授权使用T-SQL语句的GRANT语句授权。语法格式为:GRANT ALL PRIVILEGES|权限 ,.n (列 ,.n )O
17、N 表|视图|ON 表|视图 (列 ,.n )|ON 存储过程|扩展存储过程|ON 用户自定义类型 TO 数据库用户 ,.n WITH GRANT OPTION AS 组|角色 ALL表示授予所有可用的权限。对于语句权限,只有 sysadmin 角色成员可以使用 ALL。对于对象权限,sysadmin 和 db_owner 角色成员和数据库对象所有者都可以使用 ALL。WITH GRANT OPTION表示可以将指定的对象权限授予其他用户。【例例12】给给用用户户MaryMary和和JohnJohn以以及及Windows Windows NTNT组组CorporateCorporateBobJ
18、 BobJ 授授予多个语句权限。予多个语句权限。grantcreatedatabase,createtabletoMary,John,CorporateBobJ权限管理权限收回删除以前在当前数据库内的用户上授予或拒绝的权限使用REVOKE语句。语法格式为:REVOKE GRANT OPTION FOR ALL PRIVILEGES|权限 ,.n (列 ,.n )ON 表|视图|ON 表|视图 (列 ,.n )|ON 存储过程|扩展存储过程|ON 用户自定义类型FROM 用户 ,.n CASCADE AS 组|角色 CASCADE:应用在授予许可时使用了WITH GRANT OPTION的情况。
19、如果该用户又将被授予的许可授予了其他用户,则使用CASCADE关键字将撤消所有这些已经授予的许可。REVOKE 只适用于当前数据库内的权限。废除的权限只在被废除权限的级别(用户、组或角色)上删除授予或拒绝的权限。权限管理【例13】废除已授予用户 Joe 和 CorporateBobJ 的 CREATE TABLE 权限。revoke create table from Joe,CorporateBobJ它删除了允许 Joe 与 CorporateBobJ 创建表的权限。不过,如果已将 CREATE TABLE 权限授予给了包含 Joe 和 CorporateBobJ 成员的任何角色,那么 Jo
20、e 和 CorporateBobJ 仍可创建表。【例14】废除授予多个用户的多个语句权限。revoke create table,create defaultfrom Mary,John权限管理拒绝访问1使用T-SQL语句拒绝访问拒绝给当前数据库内的用户授予权限并防止用户通过其组或角色成员资格继承权限。使用DENY语句。其语法格式为:DENY ALL PRIVILEGES|权限 ,.n (列 ,.n )ON 表|视图|ON 表|视图 (列 ,.n )|ON 存储过程|扩展存储过程|ON 用户自定义类型 TO 用户 ,.n CASCADE 使用 REVOKE 语句可从用户中删除拒绝的权限。用户不能访问删除的权限,除非将该权限授予了用户所在的组或角色。例如:对多个用户拒绝多个语句权限。deny create database,create table to Mary,John,CorporateBobJ用户不能使用CREATEDATABASE和CREATETABLE语句,除非给他们显式授予权限。