首页 > Linux操作系统 > Linux操作系统 > 使用者与安全性管理(转)
预存程序
• CREATE RULE 用来建立规则
• CREATE TABLE 用来建立新的数据表
• CREATE VIEW 用来建立新的检视
图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 MSSQLSvc/Host:port serviceaccount
以下为使用这个命令的范例:
setspn -A MSSQLSvc/MyServer.MyDomain.MyCompany.com sqlaccount
________________________________________
相关信息
关于 Setspn 公用程序的相关信息,请参阅 Windows 2000 文件。
________________________________________
您也必须用 TCP/IP 来使用安全性账户授权,不能使用已命名的管道,因为 SPN要使用特定的 TCP/IP 通讯端。如果使用多重连接埠,每个连接埠都必须有 SPN。
您可以用 LocalSystem 账户授权。SQL Server 将在服务器启动时自己注册登记,并且自动登记 SPN。这个选项比使用网域的使用者账户来授权还要容易。然而,当 SQL Server 关闭时,SPN 将无法替 LocalSystem 账户注册。为了在 LocalSystem 账户之下授权,请在 Setspn 公用程序中执行下列命令:
setspn -A MSSQLSvc/Host:port serviceaccount
________________________________________
说明
如果您要在 SQL Server 2000 中变更服务器账户,您必须删除之前定义的SPN,然后建立新的账户。
________________________________________
本章总结
本章学习了 SQL Server 使用者和安全性管理,也看到了如何使用数据库登入账户和数据库使用者账户允许数据库的存取。此外还学习如何建立与管理登入账户和数据库使用者,并学到了如何利用数据库角色简化使用者管理,并依照工作性质分配角色的存取权限。角色可以分配给多个使用者,让分配存取权限和修改变得更加容易。此外也看到了被称为固定服务器角色的特殊角色,这些角色是用来为使用者和 DBA 分配管理存取权限。最后我们看到了在 SQL Server 2000 中安全性的提升,使得服务器之间的安全性账户更能够安全地流通。在 第 35 章 中,我们将学习 SQL 预存程序以及如何调校 SQL 查询。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10294527/viewspace-122598/ ,如需转载,请注明出处,否则将追究法律责任。