一、身份模式验证
1、选择身份验证模式
1Windows 身份验证模式
2)混合模式:允许非Windows 客户端、Internet 客户端和混合客户端组连接SQL Server
3)身份验证模式
2Kerberos 身份验证:域内身份验证的主要安全协议
3、模拟和委托
1)模拟
2)委托:
 1、配置Active Directory 使用委托
 2、配置SQL Server使用委托
4、加密
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

二、登录帐户
使用登录帐户时,可采取的方法:
1、把已有的Windwos 用户和组添加为登录帐户
2、创建新的SQL Server 登录帐户
3、使用系统默认的登录帐户,如,sa
登录帐户存储在master..sysxlogins系统表中
1)在SQL Server中添加Windows 2003帐户
2)添加SQL Server登录帐户
3)默认登录帐户:BUILTIN\Administrators sa

 

三、为用户和角色分配登录帐户
1、为用户分配登录帐户
1)添加用户帐户:企业管理器和执行sp_grantdbaccess存储过程
Sp_revokedbaccess        从当前数据库中删除一个安全帐户
Sp_change_users_login     修改当前数据库中SQL Server登录帐户和SQL Server 用户之间的关系

 

2)默认的用户帐户:dbo用户帐户和guest 用户帐户

 

2、为角色分配登录帐户
1)固定服务器角色
2)固定数据库角色
3)用户自定义的数据库角色

 

3、使用T-SQL语句授权访问
1Windows 登录
Sp_grantlogin ‘login’  用户或组创建登录
例如:Sp_grantlogin ‘LABDC\bill’ 
授予Windows 用户BillLABDC域中对 SQL Server 2000 的访问权限
Sp_revokelogin ‘login’  废除登录项
Sp_denylogin ‘login’    阻止用户或组连接到SQL Server 2000
Sp_defaultdb ‘login’,’database’  为登录改变默认数据库
Sp_defaultdb ‘login’,’language’  为登录改变默认语言

 

2SQL_Server 登录
Sp_addlogin ‘login’  创建一个新的SQL Server 登录。如果未指定,则密码为NULL,默认数据库为master,默认语言为当前服务器语言
例如:sp_addlogin ‘Joe’,’Joe<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />123’,’northwind’
Sp_droplogin ‘login’ 删除一个SQL Server 登录
Sp_password ‘old_password’,’new_password’,’login’  SQL Server 登录添加或修改密码
Sp_defaultdb ‘login’,’database’ 为登录改变默认数据库
Sp_defaultlanguage ‘login’,’language’ 为登录改变默认语言

 

四、为用户和角色分配权限
1、类型:语句、对象、预定义
1)语句权限:只有sysadmindb_ownerdb_securityadmin角色的成员可以授予语句权限
2)对象权限
 1、表和视图权限:
 SELECT INSERTUPSERTDELETE
 2、列权限:
SELECTUPDATEREFERENCES权限有选择地应用到单个的列上
 3、存储过程权限:
EXECUTE
3)预定义权限:固定角色权限和对象所有者权限
2、使用T-SQL来授予、拒绝、废除权限
授予:
GRANT CREATE TABLE TO JOE,SaleManager,[LABDC\ADMINS]
CREATE TABLE 语句权限授予Joe SQL Server 登录)、SaleManager(用户定义的数据库角色)和LABDV\ADMINSWindows组)
拒绝:
DENY CREAT TABLE TO Joe
废除权限:
REVOKE ALL FROM Joe
废除了Joe 的所有已授予和已拒绝权限,包括语句权限和对象权限
3、使用T-SQL查看语句权限
使用sp_helprotect系统存储过程查看数据库内现有的语句权限。所有数据库用户都是具有执行这个存储过程的权限
例如:EXEC sp_helprotect NULL,NULL,NULL’s’
列出了当前数据库所有的语句权限

 

4、管理对象权限
1)使用T-SQL 授予、拒绝或废除对象权限
GRANT SELECT ON Customer to joesalesusers[LABDC\ADMINS]
customer表上的SELECT对象权限授予JoeSQL Server 登录)、salesuers(用户定义的数据库角色)和LABDC\ADMINS(Windows)
DENY INSERT,UPDATE,DELETE To Joe

 

GRANT SELECT ON Customer To salesmanagers WITH GRANT OPTION
Customer表上的SELECT对象权限授予salemanagers,并且salesmanagers角色的任何成员都有权将Customer表上的SELECT对象权限授予其他用户

 

把权限授予某个组时用WITH GRANT OPTION,该组的用户把权限授予其他用户、组或角色的时候,必须用AS
例:GRANT SELECT ON Customer To Joe  AS salesmanagers

 

REVOKE GRANT OPTION  FOR ON Customer FROM Joe AS salesmanagers
废除了Joe WITH GRANT OPTION权限,但没有废除在Customer表上的权限

 

REVOKE GRANT OPTION  FOR ON Customer FROM Joe CASCADE AS salesmanagers
废除了Joe WITH GRANT OPTION权限,也废除了由Joe 授予其他用户的所有权限

 

2)查看对象权限
EXEC sp_helprotect ‘customer’
列出了当前数据库内customer表所有的对象权限

 

EXEC sp_helprotect NULL,’Joe’
列出了Joe在当前数据库内所有的语句权限和对象权限

 

EXEC sp_helprotect NULL,NULL,NULL,’salesmanagers’
列出了由当前数据库内的salesmanagers角色成员授予的全部对象权限

 

五、管理SQL Server 安全性

 

改变对象所有者:sp_changeobjectowner object ,owner

 

六、管理应用程序的安全性
1、创建:Sp_addapprole ‘AccountingAppRole’, ’AppPassword’
2、激活应用程序角色
Sp_setapprole ‘AccountingAppRole’, ’AppPassword’