博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用者与安全性管理(转)
阅读量:2500 次
发布时间:2019-05-11

本文共 6084 字,大约阅读时间需要 20 分钟。

预存程序

 
• CREATE RULE 用来建立规则
 
• CREATE TABLE 用来建立新的数据表
 
• CREATE VIEW 用来建立新的检视

预存程序
 
• CREATE RULE 用来建立规则
 
• CREATE TABLE 用来建立新的数据表
 
• CREATE VIEW 用来建立新的检视
 
陈述式存取权限可以用 Enterprise Manager 或 T-SQL 分配。
使用 Enterprise Manager 分配陈述式存取权限
 
要使用 Enterprise Manager 为使用者授予数据库的陈述式存取权限,请按照下列步骤操作:
1. 展开一个服务器群组,展开一个服务器,然后展开 数据库 数据夹。在需要分配存取权限的数据库上按一下鼠标右钮,并从快捷菜单中选择 内容 ,显示数据库的属性窗口,如图34-16所示。
 
图34-16 数据库的属性窗口
2. 选取 权限 页签,如图34-17所示。在这里可以为存取该数据库的使用者分配存取权限。这些数据列包含复选框,规定了所要分配的陈述式存取权限,而 使用者/角色 字段列出了存取这个数据库的使用者和角色。
 
图34-17 数据库属性窗口的权限页签
使用 T-SQL 分配陈述式存取权限
 
您可以使用 GRANT T-SQL 陈述式为使用者分配陈述式存取权限。GRANT 陈述式的语法如下:
GRANT { ALL | statement }
TO security_account
可以分配给使用者的陈述式存取权限包括 CREATE DATABASE、CREATE DEFAULT、CREATE PROCEDURE、CTEATE RULE、CREATE TABLE、CREATE VIEW、BACKUP DATABASE 和 BACKUP LOG,如前所述。例如要为使用者账户 Elea 新增 CREATE DATABASE和CREATE TABLE 陈述式存取权限,请使用下面的命令:
GRANT CREATE DATABASE,CREATE TABLE
TO 'Elea'
所以,为使用者账户新增陈述式存取权限其实并不困难。
使用 T-SQL 撤销陈述式存取权限
 
您也可以使用 T-SQL 陈述式 REVOKE 来撤销使用者账户的陈述式存取权限。REVOKE 陈述式的语法如下:
REVOKE { ALL | statement }
FROM security_account
例如,要从使用者账户 Elea 上撤销 CREATE DATABASE 陈述式存取权限,可使用下列命令:
REVOKE CREATE DATABASE
FROM 'Elea'
正如所见,撤销使用者的陈述式存取权限也不是个复杂的过程。
管理数据库角色
 
使用数据库角色可以简化管理使用者存取权限的工作。数据库角色就是设计用来允许一组使用者接受同样的数据库存取权限,这样便不需要个别的分配这些存取权限。不要分配给每个使用者个人的存取权限,可以为一组使用者建立角色,然后分配存取权限。
角色是为了特殊的工作群组、工作类别或工作任务而设计。在这种情况下,根据新使用者所执行的工作,它们可以成为一个或多个数据库角色的成员。例如,角色可能定义成工作类别,如支付性账户、接受性账户、工程以及人力资源等。当一个使用者加入这些部门或群组中时,他或她就被分配为这个角色的一个成员。一个使用者可以是一个或多个角色的成员,但是并不一定要求使用者成为某一角色的成员。除了成为数据库角色的成员以外,使用者也可以分配个人存取权限。
建立和修改角色
 
和 DBA 所执行的大多数任务一样,建立和修改数据库角色也可以透过Enterprise Manager 或 T-SQL 命令来完成。(SQL Server 没有提供这一类的精灵。)这两种方法必须完成同样的例行性任务:
• 建立数据库角色。
 
• 为角色分配存取权限。
 
• 为角色分配使用者。
 
当检视角色时,可以看到分配给角色的存取权限和分配给角色的使用者。
使用 Enterprise Manager 管理角色
 
要使用 Enterprise Manager 建立数据库角色,请按照下列步骤操作:
1. 展开一个服务器群组,展开一个服务器,然后展开 数据库 数据夹。在需要建立角色的数据库上按一下鼠标右钮(本范例使用 Northwind),并从快捷菜单中选择 新增 ,接着选择 数据库角色 。另外一种方法,可以展开数据库,在 角色 上按一下鼠标右钮,并从快捷菜单中选择 新增数据库角色 。这两种方法都可进入 数据库角色属性 窗口,如图34-18所示。
 
图34-18 「数据库角色属性」窗口
2. 在 名称 文字方块中键入名称来为角色分配描述性名称-请选择一个有助于记住角色功能的名称。
3. 按一下 新增 为角色分配使用者。这时将会显示可以存取该数据库的使用者账户清单,如图34-19所示。选取要分配给该角色的使用者。如果要取消选择使用者,只要在使用者名称上再按一下就可以了。在完成修改角色成员后,按一下 确定 即可建立了新角色。现在返回 Enterprise Manager 窗口中。
 
图34-19 新增角色成员对话框
4. 要为角色分配存取权限,先展开 角色 数据夹开启 数据库角色属性 窗口,在角色名称上按一下鼠标右钮,并从快捷菜单中选择 内容 。然后按一下 权限 ,进入 数据库角色属性 - Northwind 窗口,如图34-20所示。
在这个窗口中,可以为数据库中的对象角色分配不同的存取权限。选择清单中适合的复选框。数据库对象是列在 对象 数据列中的。选择窗口上方的选项可以检视所有的对象,或是列出这个角色有权限的对象。一旦分配了一个角色给某个使用者,使用者就获得了分配给这个角色的所有存取权限。
在建立了角色后,可以在 数据库角色属性 窗口中修改。要修改角色,请按照为角色增加存取权限的步骤操作。也可以在 数据库角色属性 窗口中新增以及删除使用者和存取权限。
使用 T-SQL 管理角色
 
也可以使用 sp_addrole 预存程序来建立角色。sp_addrole 预存程序的语法如下:
sp_addrole [ @rolename = ] 'role'
[ , [ @ownername = ] 'owner' ]

 

图34-20 数据库角色属性 - Northwind窗口
例如,要在 Northwind 数据库中加入一个名称为 readonly 的角色,请使用下列 T-SQL 命令:
USE Northwind
GO
sp_addrole 'readonly' , 'dbo'
GO
USE Northwind 命令选取 Northwind 为目前数据库。如果没有指定数据库,那么在预设数据库中会建立角色。
这个预存程序只能建立角色。要为角色增加存取权限,请使用前面描述的 GRANT 陈述式。要为角色删除存取权限,请使用 REVOKE 陈述式。
例如,要为 readonly 角色增加 Employees、Customers 和 Orders 数据表的SELECT 存取权限,请使用下列的 GRANT 陈述式:
USE Northwind
GO
GRANT SELECT
ON Employees
TO readonly
GO
GRANT SELECT
ON Customers
TO readonly
GO
GRANT SELECT
ON Orders
TO readonly
GO
要为角色增加使用者,请使用 sp_addrolemember 预存程序。sp_addrolemember 预存程序的语法如下:
sp_addrolemember 'role','security_account'
下列命令可为 readonly 角色增加使用者:
USE Northwind
GO
sp_addrolemember 'readonly' , 'Guest'
GO
使用固定的服务器角色
 
在 SQL Server 安装时,建立了大量预先定义的服务器角色。这些固定服务器角色被用来授予存取权限给 DBA,这些角色包含了服务器存取权限以及对象和陈述式存取权限,清单如下:
• bulkadmin 可以执行大量插入
 
• dbcreator 可以建立和变更数据库
 
• diskadmin 可以管理磁盘档案
 
• processadmin 可以管理S QL Server 程序
 
• securityadmin 可以管理登入账户和建立数据库存取权限
 
• serveradmin 可以设定任何服务器选项,并且可以关闭数据库
 
• setupadmin 可以管理连结的服务器和启动程序
 
• sysadmin 可以执行任何服务器行为
 
为使用者账户分配固定服务器角色,可让使用者执行角色所拥有存取权限的管理任务。依需要让所有的DBA使用相同的管理账户可能会更好些。与数据库角色相比,固定服务器角色比个人存取权限更容易维护,但是固定服务器角色是不能修改的。您可以按照下列步骤为一个使用者分配固定服务器角色。
1. 在 Enterprise Manager 中展开一个服务器群组,展开一个服务器,展开 性 数据夹,然后选取 服务器角色 。在需要加入使用者的固定服务器角色上按鼠标右钮,并从快捷菜单中选择 内容 ,进入 服务器角色 窗口,如图34-21所示。
 
图34-21 服务器角色窗口
2. 按 新增 ,为新增的使用者账户分配固定服务器角色。这将呼叫 新增成员 对话框,如图34-22所示。
 
图34-22 新增成员对话框
3. 选取了需要加入固定服务器角色的使用者之后,按一下 确定 ,返回 服务器角色属性 窗口。请按一下 确定 为性角色新增使用者。
性账户授权
 
SQL Server 2000 使用 Kerberos 模式建立性。(关于 Kerberos 模式的信息可参阅 第 2 章 。)SQL Server 2000 使用 Kerberos 通讯协议来支持客户端与服务器之间的相互认证。这使得客户端的识别能够在计算机之间流通,于是就可连接到不同的服务器上;登入新的服务器时,可使用个人化的用户识别进行数据的存取。这就是性账户授权。
我们来看一个性账户授权的例子。假定一个用户连接到 Server A 为NTDOMAINAlexR,而 ServerA 又与 ServerB 相连接。那么 ServerB 就知道连接的性识别为 NTDOMAINAlexR。这减少了用户登入到 ServerB 的需求。
如果要使用性账户授权,所连接的所有服务器都必须能够执行 Windows 2000,并支持 Kerberos,而且您必须正在使用 Active Directory 服务。下列选项必须在 Active Directory 中设定,以便进行授权:
• 账户敏感无法授权 要求授权的使用者绝对不能选择这个选项。
 
• 账户可以授权 SQL Server 2000 的服务器账户一定要选这个选项。
 
• 计算机可以授权 执行 SQL Server 2000 的服务器一定要选这个选项。
 
设定 SQL Server
 
在使用性账户授权之前,必须先设定 SQL Server 2000 来接受授权。授权促成彼此相互确认。要使用性账户授权,SQL Server 2000 必须有 Windows 2000 账户网域管理员分配的 Service Principal Name(SPN)。SPN 必须分配到计算机上 SQL server 的服务器账户。SPN 必须证明 SQL server 是经由特定服务器以及 Windows 2000 账户网域管理员认证的。您可以让您的网域管理员使用在 Windows 2000 Resource Kit 上取得的 Setspn 公共程序,来为 SQL Server 建立一个 SPN。
要建立 SPN,请执行下列命令:
setspn -A MSSQLS/Host:port serviceaccount
以下为使用这个命令的范例:
setspn -A MSSQLS/MyServer.MyDomain.MyCompany.com account
________________________________________
相关信息
关于 Setspn 公用程序的相关信息,请参阅 Windows 2000 文件。
________________________________________
您也必须用 TCP/IP 来使用性账户授权,不能使用已命名的管道,因为 SPN要使用特定的 TCP/IP 通讯端。如果使用多重连接埠,每个连接埠都必须有 SPN。
您可以用 LocalSystem 账户授权。SQL Server 将在服务器启动时自己注册登记,并且自动登记 SPN。这个选项比使用网域的使用者账户来授权还要容易。然而,当 SQL Server 关闭时,SPN 将无法替 LocalSystem 账户注册。为了在 LocalSystem 账户之下授权,请在 Setspn 公用程序中执行下列命令:
setspn -A MSSQLS/Host:port serviceaccount
________________________________________
说明
如果您要在 SQL Server 2000 中变更服务器账户,您必须删除之前定义的SPN,然后建立新的账户。
________________________________________
本章总结
 
本章学习了 SQL Server 使用者和性管理,也看到了如何使用数据库登入账户和数据库使用者账户允许数据库的存取。此外还学习如何建立与管理登入账户和数据库使用者,并学到了如何利用数据库角色简化使用者管理,并依照工作性质分配角色的存取权限。角色可以分配给多个使用者,让分配存取权限和修改变得更加容易。此外也看到了被称为固定服务器角色的特殊角色,这些角色是用来为使用者和 DBA 分配管理存取权限。最后我们看到了在 SQL Server 2000 中性的提升,使得服务器之间的性账户更能够地流通。在 第 35 章 中,我们将学习 SQL 预存程序以及如何调校 SQL 查询。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-122598/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10294527/viewspace-122598/

你可能感兴趣的文章
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
linux下载github中的文件
查看>>
HDP Sandbox里面git clone不了数据(HTTP request failed)【目前还没解决,所以hive的练习先暂时搁置了】
查看>>
动态分区最佳实践(一定要注意实践场景)
查看>>
HIVE—索引、分区和分桶的区别
查看>>
Hive进阶总结(听课总结)
查看>>
大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
查看>>
Sqoop往Hive导入数据实战
查看>>
Mysql到HBase的迁移
查看>>
Sqoop import进阶
查看>>
Hive语句是如何转化成MapReduce任务的
查看>>
Hive创建table报错:Permission denied: user=lenovo, access=WRITE, inode="":suh:supergroup:rwxr-xr-x
查看>>
Hive执行job时return code 2排查
查看>>
hive常用函数及数据结构介绍
查看>>
Hive面试题干货(亲自跟着做了好几遍,会了的话对面试大有好处)
查看>>
力扣题解-230. 二叉搜索树中第K小的元素(递归方法,中序遍历解决)
查看>>
力扣题解-123. 买卖股票的最佳时机 III(动态规划)
查看>>
Django 源码阅读:服务启动(wsgi)
查看>>
Django 源码阅读:url解析
查看>>