收藏 分享(赏)

sql-server系统安全管理.ppt

上传人:天天快乐 文档编号:580879 上传时间:2018-04-12 格式:PPT 页数:56 大小:1.07MB
下载 相关 举报
sql-server系统安全管理.ppt_第1页
第1页 / 共56页
sql-server系统安全管理.ppt_第2页
第2页 / 共56页
sql-server系统安全管理.ppt_第3页
第3页 / 共56页
sql-server系统安全管理.ppt_第4页
第4页 / 共56页
sql-server系统安全管理.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、第10章 系统安全管理,10.1 SQL Server 2014的安全机制,10.2 建立和管理用户账户,10.3 角 色 管 理,10.4 数据库权限的管理,10.5 数据库架构的定义和使用,10.1 SQL Server 2014的安全机制,10.1.1 SQL Server 身份验证模式身份验证模式是指系统确认用户的方式。SQL Server有两种身份验证模式:Windows验证模式和SQL Server验证模式。这是在安装SQL Server的过程中由“数据库引擎配置”确定的,如图10.1所示。,10.1.1 SQL Server 身份验证模式,1Windows验证模式用户登录Wind

2、ows时进行身份验证,登录SQL Server时就不再进行身份验证了。注意:(1)必须将Windows账户加入到SQL Server中,才能采用Windows账户登录SQL Server。(2)如果使用Windows账户登录到另一个网络的SQL Server,则必须在Windows中设置彼此的托管权限。2SQL Server验证模式在SQL Server验证模式下,SQL Server服务器要对登录的用户进行身份验证。系统管理员必须设定登录验证模式的类型为混合验证模式。当采用混合模式时,SQL Server系统既允许使用Windows登录名登录,也允许使用SQL Server登录名登录。,10

3、.1.2 SQL Server安全性机制,1服务器级别服务器级别所包含的安全对象主要有登录名、固定服务器角色等。其中,登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。SQL Server中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。2数据库级别数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。用户安全

4、对象是用来访问数据库的。如果某人只拥有登录名,而没有在相应的数据库中为其创建登录名所对应的用户,则该用户只能登录数据库服务器,而不能访问相应的数据库。,10.1.2 SQL Server安全性机制,3架构级别架构级别所包含的安全对象有表、视图、函数、存储过程、类型、同义词、聚合函数等。在创建这些对象时可设定架构,若不设定则系统默认架构为dbo。数据库用户只能对属于自己架构中的数据库对象执行相应的数据操作。至于操作的权限则由数据库角色决定。例如,若某数据库中的表A属于架构S1,表B属于架构S2,而某用户默认的架构为S2,如果没有授予用户操作表A的权限,则该用户不能对表A执行相应的数据操作。但是,

5、该用户可以对表B执行相应的操作。,10.1.3 SQL Server数据库安全验证过程,一个用户如果要对某一数据库进行操作,则必须满足以下三个条件:(1)登录SQL Server服务器时必须通过身份验证。(2)必须是该数据库的用户,或者是某一数据库角色的成员。(3)必须有对数据库对象执行该操作的权限。,10.1.3 SQL Server数据库安全验证过程,不管使用哪种验证方式,用户都必须具备有效的Windows用户登录名。SQL Server有两个常用的默认登录名:sa和计算机名Windows管理员账户名。其中,sa是系统管理员,在SQL Server中拥有系统和数据库的所有权限,如图10.2

6、所示。,10.2 建立和管理用户账户,10.2.1 以界面方式管理用户账户1建立Windows验证模式的登录名(1)创建Windows的用户。以管理员身份登录到Windows,打开控制面板,完成新用户“liu”的创建。(2)将Windows账户加入到SQL Server中。以管理员身份登录到“SSMS”,在“对象资源管理器”中,在“安全性”下选择“登录名”项。右击鼠标,在弹出的快捷菜单中选择“新建登录名”,打开“登录名-新建”窗口。可以通过单击“常规”选项页的“搜索”按钮,在“选择用户或组”对话框的“输入要选择的对象名称”中输入“liu”,然后单击“检查名称”按钮,系统生成“PC-201412

7、101514liu”(如图10.3所示),单击“确定”按钮,回到“登录名-新建”窗口。,10.2.1 以界面方式管理用户账户,在登录名中就会显示完整名称。选择默认数据库为“pxscj”,如图10.4所示。,10.2.1 以界面方式管理用户账户,2建立SQL Server验证模式的登录名(1)将验证模式设为混合模式。以系统管理员身份登录“SSMS”,在“对象资源管理器”中选择要登录的SQL Server服务器图标,右击鼠标,在弹出的快捷菜单中选择“属性”菜单项,打开“服务器属性”窗口。选择“安全性”选项页。选择服务器身份验证为“SQL Server和Windows身份验证模式”,如图10.5所示

8、。,10.2.1 以界面方式管理用户账户,(2)创建SQL Server验证模式的登录名。在“对象资源管理器”中“安全性”下的“登录名”上按右键,选择“新建登录名”,系统显示“登录名-新建”对话框。选择“SQL Server 身份验证”, 登录名输入“SQL_liu”,输入密码和确认密码“123”, 并将“强制密码过期”复选框中的钩去掉,默认数据库为“pxscj”,如图10.6所示。单击“确定”按钮即可。,10.2.1 以界面方式管理用户账户,3管理数据库用户(1)以登录名新建数据库用户。以系统管理员身份连接SQL Server,展开“数据库”这里可选“pxscj”“安全性”,选择“用户”,右

9、击鼠标,选择“新建用户”菜单项,进入“数据库用户-新建”窗口。在“登录名”框中填写一个能够登录SQL Server的登录名,如“SQL_liu”。在“用户名”框中填写一个数据库用户名“User_SQL_liu”。 一个登录名在本数据库中只能创建一个数据库用户。这里可选择默认架构为dbo,如图10.7所示。,10.2.1 以界面方式管理用户账户,图10.7 新建数据库用户(SQL Server登录名),10.2.1 以界面方式管理用户账户,也可采用上述方法在pxscj数据库下新建Windows登录名“liu”对应的用户“User_liu”,如图10.8所示。,10.2.1 以界面方式管理用户账户

10、,(2)数据库用户显示。数据库用户创建成功后,可以通过选择“pxscj”“安全性”,选择“用户”栏查看到该用户。在“用户”列表中,还可以修改现有数据库用户的属性,或者删除该用户。(3)以SQL Server登录名连接SQL Server。重启SQL Server,在对话框的“身份验证”框中选择“SQL Server身份验证”,“登录名”填写为“SQL_liu”,输入密码“123”,单击“连接”按钮,即可连接SQL Server,如图10.9所示。,10.2.1 以界面方式管理用户账户,此时的“对象资源管理器”如图10.10所示。,10.2.2 以命令方式管理用户账户:CREATE LOGIN/

11、USER,1登录名创建1)创建登录名语法格式:CREATE LOGIN 登录名 WITH PASSWORD = 密码 HASHED MUST_CHANGE , , . /*WITH子句用于创建SQL Server登录名*/ | FROM/*FROM子句用于创建其他登录名*/ WINDOWS WITH , . | CERTIFICATE证书名 | ASYMMETRIC KEY 非对称密钥名 ,10.2.2 以命令方式管理用户账户:CREATE LOGIN/USER,其中: := SID = 登录GUID | DEFAULT_DATABASE = 数据库 | DEFAULT_LANGUAGE =

12、语言 | CHECK_EXPIRATION = ON | OFF | CHECK_POLICY = ON | OFF CREDENTIAL = 凭据名 := DEFAULT_DATABASE = 数据库 | DEFAULT_LANGUAGE = 语言,10.2.2 以命令方式管理用户账户:CREATE LOGIN/USER,(1)创建Windows验证模式登录名。创建Windows登录名使用FROM子句,在FROM子句的语法格式中,WINDOWS关键字指定将登录名映射到Windows登录名,其中,为创建Windows登录名的选项,DEFAULT_DATABASE指定默认数据库,DEFAULT_

13、LANGUAGE指定默认语言。【例10.1】 以命令方式创建Windows登录名tao(假设Windows用户tao已经创建,本地计算机名为“PC-201412101514”),默认数据库设为pxscj。USE pxscjGOCREATE LOGIN PC-201412101514tao FROM WINDOWS WITH DEFAULT_DATABASE= pxscj命令执行成功后,在“登录名”“安全性”列表上就可以查看到该登录名。,10.2.2 以命令方式管理用户账户:CREATE LOGIN/USER,(2)创建SQL Server验证模式登录名。创建SQL Server登录名使用WIT

14、H子句,其中,PASSWORD:用于指定正在创建的登录名的密码,“密码”为密码字符串。HASHED 选项指定在PASSWORD参数后输入的密码已经过哈希运算。:用于指定在创建SQL Server登录名时的如下选项。SID:指定新SQL Server登录名的全局唯一标识符。如果未选择此选项,则自动指派。DEFAULT_DATABASE:指定默认数据库。如果未指定此选项,则默认数据库将设置为master。DEFAULT_LANGUAGE:指定默认语言。如果未指定此选项,则默认语言将设置为服务器的当前默认语言。CHECK_EXPIRATION:指定是否对此登录名强制实施密码过期策略,默认值为OFF。

15、CHECK_POLICY:指定应对此登录名强制实施运行SQL Server的计算机的Windows密码策略,默认值为ON。【例10.2】 创建SQL Server登录名SQL_tao,密码为123456,默认数据库设为pxscj。CREATE LOGIN SQL_tao WITH PASSWORD=123456, DEFAULT_DATABASE=pxscj,10.2.2 以命令方式管理用户账户:CREATE LOGIN/USER,2)删除登录名删除登录名使用DROP LOGIN命令。语法格式:DROP LOGIN 登录名例如,删除Windows登录名tao 和SQL Server登录名SQL

16、_tao。DROP LOGIN PC-201412101514taoDROP LOGIN SQL_tao,10.2.2 以命令方式管理用户账户:CREATE LOGIN/USER,2数据库用户创建1)创建数据库用户创建数据库用户使用CREATE USER命令。语法格式:CREATE USER 用户名 FOR | FROM LOGIN 登录名 | CERTIFICATE 证书名 | ASYMMETRIC KEY 非对称密钥名| WITHOUT LOGIN WITH DEFAULT_SCHEMA = 架构名 ,10.2.2 以命令方式管理用户账户:CREATE LOGIN/USER,【例10.3】

17、 使用SQL Server登录名SQL_tao和Windows登录名PC-201412101514tao在pxscj数据库中创建数据库用户User_SQL_tao和User_tao,默认架构名使用dbo。USE pxscjGOCREATE USER User_SQL_tao FOR LOGIN SQL_tao WITH DEFAULT_SCHEMA=dboCREATE USER User_tao FOR LOGIN PC-201412101514tao WITH DEFAULT_SCHEMA=dbo命令执行成功后,可以在数据库pxscj的“安全性”下的“用户”列表中查看到该数据库用户。,10.

18、2.2 以命令方式管理用户账户:CREATE LOGIN/USER,2)删除数据库用户删除数据库用户使用DROP USER语句。语法格式:DROP USER 用户名“用户名”为要删除的数据库用户名,在删除之前要使用USE语句指定数据库。例如,删除pxscj数据库的数据库用户User_SQL_tao。USE pxscjGODROP USER User_SQL_tao, User_tao,10.3 角 色 管 理,10.3.1 固定服务器角色SQL Server提供了以下固定服务器角色。(1)sysadmin:系统管理员,角色成员可对SQL Server服务器进行所有的管理工作,为最高管理角色。(

19、2)securityadmin:安全管理员,角色成员可以管理登录名及其属性,可以授予、拒绝、撤销服务器级和数据库级的权限,还可以重置SQL Server登录名的密码。(3)serveradmin:服务器管理员,角色成员具有对服务器进行设置及关闭服务器的权限。(4)setupadmin:设置管理员,角色成员可以添加和删除链接服务器,并执行某些系统存储过程。(5)processadmin:进程管理员,角色成员可以终止SQL Server实例中运行的进程。(6)diskadmin:用于管理磁盘文件。(7)dbcreator:数据库创建者,角色成员可以创建、更改、删除或还原任何数据库。(8)bulka

20、dmin:可执行BULK INSERT语句,但是这些成员对要插入数据的表必须有INSERT权限。(9)public:其角色成员可以查看任何数据库。,10.3.1 固定服务器角色,1界面方式添加服务器角色成员(1)以系统管理员身份登录到SQL Server服务器,在“对象资源管理器”中展开“安全性”“登录名”,选择登录名,例如“PC-201412101514tao”,双击或右击选择“属性”菜单项,打开“登录属性”窗口。(2)在打开的“登录属性”窗口中选择“服务器角色”选项页,在“登录属性”窗口右边列出了所有的固定服务器角色,用户可以根据需要,在服务器角色前的复选框中打钩,来为登录名添加相应的服务

21、器角色。此处默认已经选择了“public”服务器角色。单击“确定”按钮完成添加。,10.3.1 固定服务器角色,2利用“系统存储过程”添加固定服务器角色成员利用系统存储过程sp_addsrvrolemember可将一登录名添加到某一固定服务器角色中,使其成为固定服务器角色的成员。语法格式:sp_addsrvrolemember 登录名 = login, 角色名 = role参数含义:login指定添加到固定服务器角色role的登录名,login可以是SQL Server登录名或Windows 登录名;对于Windows登录名,如果还没有授予SQL Server访问权限,将自动对其授予访问权限。

22、【例10.4】 将SQL Server登录名“SQL_tao”添加到sysadmin固定服务器角色中。EXEC sp_addsrvrolemember SQL_tao, sysadmin,10.3.1 固定服务器角色,3利用“系统存储过程”删除固定服务器角色成员利用sp_dropsrvrolemember系统存储过程可从固定服务器角色中删除SQL Server 登录名或Windows登录名。语法格式:sp_dropsrvrolemember 登录名 = login , 角色名 = role参数含义:login为将要从固定服务器角色删除的登录名。role为服务器角色名,默认值为NULL,必须是有

23、效的固定服务器角色名。例如,从sysadmin固定服务器角色中删除SQL Server登录名SQL_tao。EXEC sp_dropsrvrolemember SQL_tao, sysadmin,10.3.2 固定数据库角色,(1)db_owner:数据库所有者,这个数据库角色的成员可执行数据库的所有管理操作。(2)db_accessadmin:数据库访问权限管理者,角色成员具有增加、删除数据库使用者、数据库角色和组的权限。(3)db_securityadmin:数据库安全管理员,角色成员具有可管理数据库中的权限,如设置数据库表的增加、删除、修改和查询等存取权限。(4)db_ddladmin:

24、数据库DDL管理员,角色成员可增加、修改或删除数据库中的对象。(5)db_backupoperator:数据库备份操作员,角色成员具有执行数据库备份的权限。(6)db_datareader:数据库数据读取者,角色成员可以从所有用户表中读取数据。(7)db_datawriter:数据库数据写入者,角色成员具有对所有用户表进行增加、删除、修改的权限。(8)db_denydatareader:数据库拒绝数据读取者,角色成员不能读取数据库中任何表的内容。(9)db_denydatawriter:数据库拒绝数据写入者,角色成员不能对任何表进行增加、删除、修改操作。(10)public:一个特殊的数据库角

25、色,每个数据库用户都是public角色的成员,因此不能将用户、组或角色指派为public角色的成员,也不能删除public角色的成员。通常,将一些公共的权限赋给public角色。,10.3.2 固定数据库角色,1以界面方式添加固定数据库角色成员(1)以系统管理员身份登录到SQL Server服务器,在“对象资源管理器”中展开“数据库”“pxscj”“安全性”“用户”,选择一个数据库用户,如“User_tao”,双击或单击右键选择“属性”菜单项,打开“数据库用户”窗口。(2)在打开的窗口中,在“常规”选项页的“数据库角色成员身份”栏中,用户可以根据需要,在数据库角色前的复选框中打钩,为数据库用户

26、添加相应的数据库角色,单击“确定”按钮完成添加。(3)查看固定数据库角色的成员。在“对象资源管理器”中,在pxscj数据库下的“安全性”“角色”“数据库角色”目录下,选择“数据库角色”,如“db_owner”,右击选择“属性”菜单项,在“属性”窗口中的“角色成员”栏下可以看到该数据库角色的成员列表。,10.3.2 固定数据库角色,2利用系统存储过程添加固定数据库角色成员利用系统存储过程sp_addrolemember可以将一个数据库用户添加到某一固定数据库角色中,使其成为该固定数据库角色的成员。语法格式:sp_addrolemember 角色名 = role, 成员名 = security_a

27、ccount参数含义:role为当前数据库中的数据库角色的名称。security_account为添加到该角色的安全账户,可以是数据库用户或当前数据库角色。【例10.5】 将pxscj数据库上的数据库用户User_sql_tao、User_tao添加为固定数据库角色db_owner的成员。USE pxscjGOEXEC sp_addrolemember db_owner, User_SQL_taoEXEC sp_addrolemember db_owner, User_tao,10.3.2 固定数据库角色,3利用系统存储过程删除固定数据库角色成员利用系统存储过程sp_droprolemembe

28、r可以将某一成员从固定数据库角色中去除。语法格式:sp_droprolemember 角色名 = role , 成员名 = security_account例如,将数据库用户User_SQL_tao从db_owner中去除。EXEC sp_droprolemember db_owner, User_SQL_taoEXEC sp_droprolemember db_owner, User_tao,10.3.3 自定义数据库角色:CREATE/DROP ROLE,1界面方式创建数据库角色(1)创建数据库角色。以Windows系统管理员身份连接SQL Server,在“对象资源管理器”中展开“数据库

29、”,选择要创建角色的数据库(如pxscj),展开其中的“安全性”“角色”,右击鼠标,在弹出的快捷菜单中选择“新建”菜单项,在弹出的子菜单中选择“新建数据库角色”菜单项,进入“数据库角色-新建”窗口。在“数据库角色-新建”窗口中,选择“常规”选项页,输入要定义的角色名称(如ROLE1),所有者默认为dbo。直接单击“确定”按钮,完成数据库角色的创建,如图10.11所示。,10.3.3 自定义数据库角色:CREATE/DROP ROLE,图10.11 新建数据库角色,10.3.3 自定义数据库角色:CREATE/DROP ROLE,(2)将数据库用户加入数据库角色。将用户加入自定义数据库角色的方法

30、与将用户加入固定数据库角色的方法类似。例如,将pxscj数据库的用户User_tao加入ROLE1角色。此时数据库角色ROLE1的成员还没有任何的权限,当授予数据库角色权限时,这个角色的成员也将获得相同的权限。当数据库用户成为某一数据库角色的成员之后,该数据库用户就获得该数据库角色所拥有的对数据库操作的权限。,10.3.3 自定义数据库角色:CREATE/DROP ROLE,2命令创建数据库角色(1)定义数据库角色。创建用户自定义数据库角色可以使用CREATE ROLE语句。语法格式:CREATE ROLE 角色名 AUTHORIZATION 所有者名 【例10.6】 在当前数据库中创建名为R

31、OLE2的新角色,并指定dbo为该角色的所有者。USE pxscjGOCREATE ROLE ROLE2 AUTHORIZATION dbo(2)给数据库角色添加成员。向用户定义数据库角色添加成员也使用存储过程sp_ addrolemember,用法与之前介绍的基本相同。【例10.7】 将SQL Server登录名创建的pxscj的数据库用户User_SQL_tao添加到数据库角色ROLE1中。将数据库角色ROLE2添加到ROLE1中。EXEC sp_addrolemember ROLE1,User_SQL_taoEXEC sp_addrolemember ROLE1,ROLE2,10.3.3

32、 自定义数据库角色:CREATE/DROP ROLE,3命令删除数据库角色要删除数据库角色可以使用DROP ROLE语句。语法格式:DROP ROLE 角色名其中,“角色名”为要删除的数据库角色的名称。【例10.8】 删除数据库角色ROLE2。在删除ROLE2之前,首先需要将ROLE2中的成员删除,可以使用界面方式,也可以使用命令方式。若使用界面方式,只需在ROLE2的属性页中操作即可。确认ROLE2可以删除后,使用以下命令删除ROLE2:DROP ROLE ROLE2,10.3.4 应用程序角色,创建应用程序角色步骤如下:(1)以系统管理员身份连接SQL Server,在“对象资源管理器”窗

33、口中展开“数据库”“pxscj”“安全性”“角色”,右击“应用程序角色”,选择“新建应用程序角色”。(2)在“应用程序角色-新建”窗口中输入应用程序角色名称“APPRole”,默认架构“dbo”,设置密码为“123”,如图10.12所示。,10.3.4 应用程序角色,图10.12 新建应用程序角色(常规),10.3.4 应用程序角色,在“安全对象”选项页中,可以单击“搜索”按钮,添加“特定对象”,选择对象为xsb表。单击“确定”按钮回到“安全对象”选项页中,授予xsb表的“选择”权限(如图10.13所示),完成后单击“确定”按钮。,10.3.4 应用程序角色,(3)添加User_SQL_tao

34、用户为db_denydatareader数据库角色的成员,使用“SQL_tao”登录名连接SQL Server。此后,在查询窗口中输入如下语句:USE pxscjGOSELECT * FROM xsb运行结果显示出错信息。(4)使用系统存储过程sp_setapprole激活应用程序角色,语句如下:EXEC sp_setapprole APPRole, 123(5)在查询窗口中重新输入第(3)步中的查询语句,成功地执行了查询。,10.4 数据库权限的管理,10.4.1 授予权限:GRANT1以命令方式授予权限利用GRANT语句可以给数据库用户或数据库角色授予数据库级别或对象级别的权限。语法格式:

35、GRANT ALL PRIVILEGES | 权限 ( 列 , . ) , . ON 安全对象 TO 主体 , . WITH GRANT OPTION AS 主体 【例10.9】 给pxscj数据库上的用户User_liu和User_SQL_liu授予创建表的权限。以系统管理员(sa)身份登录SQL Server,新建一个查询,输入以下语句:USE pxscjGOGRANT CREATE TABLE TO User_liu, User_SQL_liu, Role1GO说明:授予数据库级权限时,CREATE DATABASE权限只能在master数据库中被授予。,10.4.1 授予权限:GRAN

36、T,【例10.10】 首先在pxscj数据库中给public角色授予xsb表的SELECT权限。然后,将其他一些权限授予用户User_liu和User_SQL_liu,使用户有对xsb表的所有操作权限。以系统管理员身份登录SQL Server,新建一个查询,输入以下语句:USE pxscjGOGRANT SELECT ON xsb TO public, Role2GO GRANT INSERT, UPDATE, DELETE, REFERENCES ON xsb TO User_liu, User_SQL_liuGO,10.4.1 授予权限:GRANT,2以界面方式授予语句权限1)授予数据库的

37、权限【例10.11】 数据库用户User_SQL_tao授予pxscj数据库的CREATE TABLE语句的权限(即创建表的权限)。(1)选择“pxscj”数据库,右击鼠标,选择“属性”菜单项进入pxscj数据库的“数据库属性”窗口,选择“权限”页。在“用户或角色”栏中选择需要授予权限的用户或角色:User_SQL_tao,在窗口下方列出的“权限”列表中找到相应的权限:创建表,在复选框中打钩,单击“确定”按钮即可完成,如图10.14所示。(2)如果需要授予权限的用户在列出的“用户或角色”列表中不存在,则可以单击“搜索”按钮将该用户添加到列表中再选择。单击“有效”选项卡可以查看该用户在当前数据库

38、中有哪些权限。,10.4.1 授予权限:GRANT,图10.14 “数据库属性”窗口,10.4.1 授予权限:GRANT,2)授予数据库对象上的权限【例10.12】 给数据库用户User_SQL_tao授予kcb表上的SELECT、INSERT的权限。(1)选择“pxscj”数据库“表”“kcb”,右击鼠标,选择“属性”菜单项进入kcb表的属性窗口,选择“权限”选项页。(2)单击“搜索”按钮,在弹出的“选择用户或角色”窗口中单击“浏览”按钮,选择需要授权的用户或角色:User_SQL_tao),选择后单击“确定”按钮回到kcb表的“表属性”窗口。(3)如图10.15所示,在“权限”列表中选择需

39、要授予的权限,如“插入”,单击“确定”按钮完成授权。(4)如果要授予用户在表的列上的SELECT权限,可以选择“选择”权限后单击“列权限”按钮,在弹出的“列权限”对话框中选择要授予权限的列。,10.4.2 拒绝权限,使用DENY命令可以拒绝给当前数据库内的用户授予的权限,并防止数据库用户通过其组或角色成员资格继承权限。语法格式:DENY ALL PRIVILEGES | 权限 ( 列 , . ) , . ON 安全对象 TO 主体 , . CASCADE AS 主体 【例10.13】 对User_SQL_liu用户和ROLE2角色成员不允许使用CREATE VIEW和CREATE TABLE语

40、句。DENY CREATE VIEW, CREATE TABLE TO User_SQL_liu, ROLE2GO,10.4.2 拒绝权限,【例10.14】 拒绝用户User_SQL_liu、PC-201412101514liu对xsb表的一些权限,这样,这些用户就没有对xsb表的操作权限了。USE pxscjGODENY SELECT, INSERT, UPDATE, DELETE ON xsb TO User_SQL_liu, PC-201412101514liuGO,10.4.3 撤销权限,利用REVOKE命令可撤销以前给当前数据库用户授予或拒绝的权限。语法格式:REVOKE GRANT

41、 OPTION FOR ALL PRIVILEGES | 权限 ( 列 , . ) , . ON 安全对象 TO | FROM 主体 , . CASCADE AS 主体 ,10.4.3 撤销权限,【例10.15】 取消已授予用户权限。(1)取消授予多个用户的多个语句权限。REVOKE CREATE TABLE, CREATE DEFAULT FROM User_liu, User_SQL_liuGO(2)取消User_liu授予或拒绝的在xsb表上的SELECT权限。REVOKE SELECT ON xsb FROM User_liu,10.5 数据库架构的定义和使用,10.5.1 以界面方式

42、创建架构1创建架构【例10.16】在pxscj数据库中创建架构。步骤如下:(1)以系统管理员身份登录SQLServer,在“对象资源管理器”中展开“数据库”“pxscj”“安全性”,选择“架构”,右击鼠标,在弹出的快捷菜单中选择“新建架构”菜单项。(2)在打开的“架构-新建”窗口中选择“常规”选项页,在窗口右边“架构名称”下面的文本框中输入架构名称(如Sch_test)。单击“搜索”按钮,在打开的“搜索角色和用户”对话框中单击“浏览”按钮,在打开的“查找对象”对话框中,在用户“User_SQL_liu”前面的复选框中打钩,单击“确定”按钮,返回“搜索角色和用户”对话框。单击“确定”按钮,返回“

43、架构-新建”窗口,如图10.16所示。(3)创建完后,在“数据库”“pxscj”“安全性”“架构”中,可以找到该创建后的新架构,打开该架构的属性窗口可以更改架构的所有者。,10.5.1 以界面方式创建架构,图10.16 新建架构,10.5.1 以界面方式创建架构,2架构应用【例10.17】 架构创建完后,可以新建一个测试表来测试如何访问架构中的对象。(1)在“表属性”窗口中将其架构修改为Sch_test。设置完成后保存该表,保存后的表可以在“对象资源管理器”中找到,此时表名就已经变成Sch_test. table_1。(2)打开表Sch_test. table_1,在表中输入一行数据“测试架构

44、的使用”。(3)在“对象资源管理器”中展开数据库“pxscj”“安全性”“架构”,选择新创建的架构Sch_test,右击鼠标,在弹出的快捷菜单中选择“属性”菜单项,打开“架构属性”窗口,在该架构属性的“权限”选项页中,单击“搜索”按钮,选择用户User_SQL_tao,为用户分配“选择”权限。单击“确定”按钮,保存上述设置。,10.5.1 以界面方式创建架构,(4)重新启动“SSMS”,使用SQL Server身份验证方式,以SQL_tao的登录名连接SQL Server。在连接成功后,创建一个新的查询,在“查询分析器”窗口中输入查询表Sch_test. table_1中数据的T-SQL语句。

45、USE pxscjGOSELECT * FROM Sch_test.table_1查询成功,结果正确。再新建一个SQL查询,在查询编辑器中输入删除表Sch_test. table_1的T-SQL语句:DELETE FROM Sch_test.table_1很明显,由于用户User_SQL_tao所属的架构没有相应的DELETE权限,因此无法对表Sch_test. table_1执行删除操作。,10.5.2 命令方式创建架构:CREATE SCHEMA,可以使用CREATE SCHEMA语句创建数据库架构。语法格式:CREATE SCHEMA , . 其中: := 架构名 | AUTHORIZATION 所有者名 | 架构名 AUTHORIZATION 所有者名 := 表定义 | 视图定义 | grant语句 revoke语句 | deny语句,10.5.2 命令方式创建架构:CREATE SCHEMA,【例10.18】 创建架构sch1,其所有者为用户User_liu。以系统管理员身份登录SQL Server,新建一个查询,输入以下语句:USE pxscjGOCREATE SCHEMA sch1 AUTHORIZATION User_liu另外,要删除可以使用DROP SCHEMA语句,例如:DROP SCHEMA sch1,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经济财会 > 贸易

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报