2. 安全帐户认证管理
��在SQL Server中,管理数据库帐户(服务器登录标识)有两种方法:使用系统存储过程语句管理,和使用Enterprise Manager管理。
  (1) 使用系统存储过程管理安全帐户认证:
��在SQL Server中,可以使用系统存储过程sp_grantlogin 授予Windows NT用户或组连接SQL Server服务器的权限。这实际上是将Windows NT 用户或小组成员映射为SQL Server的登录帐户。SQL Server可以对这些帐户采取信任登录的方式。如果这些Windows NT的用户或小组成员能够成功登录Windows NT,则SQL Server就承认它们是合法的用户,从而允许它们连接上服务器。
��● sp_grantlogin授予访问权的语法格式为:
��sp_grantlogin [@loginame=] 'login'
��其中,login为Windows NT用户或用户组名称,其格式为 "域\用户名称" 或 "计算机名\用户名称"。
��对于Windows内置的本地组,不能使用域名或计算机名,而使用BUILTIN关键字。
��例1:授予domain1域中用户user1登录权限,命令如下:
��sp_grantlogin 'domain1\user1'
��例2:授予domain1域中用户组group1中的用户登录权限,命令如下:sp_grantlogin 'domain1\group1'
��例3:授予本地计算机中用户组Users中的用户登录权限,命令如下:
��sp_grantlogin 'BUILTIN\Users'
��● 使用系统存储过程sp_denylogin禁止指定的Windows NT用户或组连接SQL Server服务器。Sp_denylogin的语法格式为:
  sp_denylogin [@loginame=] 'login'
  例4:禁止本地计算机中用户组Users中的用户登录权限,命令如下:
  sp_denylogin 'BUILTIN\Users'
  系统存储过程sp_grantlogin和sp_denylogin所添加的登录标识均存储在SQL Server的syslogins系统表中,系统存储过程sp_revokelogin能够将它们从系统表syslogin中删除。Sp_revokelogin的语法格式为:
  sp_revokelogin [@loginame=] 'login'
  例5:撤销本地计算机中用户组Users和SQL Server帐户的映射,命令如下:
  sp_revokelogin 'BUILTIN\Users'
  当使用混合认证模式时,对于没有建立Windows NT帐户的用户,只能使用SQL Server登录标识来管理用户连
接。
  ● 建立SQL Server登录标识用系统存储过程sp_addlogin。Sp_addlogin语法格式为:
  sp_addlogin [@loginame=] 'login'
  例6:建立一个名叫user2,密码是pwd,默认数据库为pubs的帐户,命令如:
  sp_addlogin user2, pwd, pubs
  ● 删除SQL Server登录标识用系统存储过程sp_droplogin。Sp_droplogin语法格式为:
  p_droplogin [@loginame=] 'login'
  例7:删除刚刚建立的帐户user2,命令如下:
  sp_droplogin 'user2'
  (2) 使用企业管理器管理安全帐户认证。
  ● 展开要创建登录帐户的"服务器"节点;
  ● 选中树形结构上的"安全性"节点,展开,如图片7-7;在"登录"节点上右击,选择"新建登录",如图片7-8,在登录界面中输入相关信息。采用SQL Server身份验证的信息为:帐户名、密码和缺省访问的数据库。采用Windows身份验证的信息为:域名、选择允许或不允许访问和缺省访问的数据库等。
  ● 打开"服务器角色",分配给帐户固定服务器角色,如图片7-9;
  ● 打开"数据库访问",决定登录帐户允许访问的数据库,以及分配给帐户的数据库角色,如图片7-10。
  (3) 特殊帐户sa
��在完成SQL Server安装以后,SQL Server就建立了一个特殊帐户sa。sa帐户拥有最高的管理权限,不管SQL Server实际的数据库所有权如何,sa可以执行服务器范围内的所有操作。在刚刚完成SQL Server的安装时候,sa帐户没有任何密码,所以要尽快为其设置密码。
  图片7-7

  图片7-8

  图片7-9

  图片7-10