SQL server中的“登录名”和“用户”概念

       本文转自http://blog.sina.com.cn/s/blog_5b2c0dcc0100bkdj.html

                               SQL server中的“登录名”和“用户”概念

 

登录名:
    是帐户标识符,用来控制对任何 SQL Server 2000 系统的访问权限。SQL Server 2000 只有在首先验证了指定的登录 ID 有效后,才完成连接。
用户:
    在数据库内,对象的全部权限和所有权由用户帐户控制。用户与数据库相关。用户只能查看经授权可以查看的表和视图,并且只能执行经授权可以执行的存储过程和管理功能。在安装SQL Server后,默认数据库中包含两个用户:dbo和guest。
    “用户”只在本数据库内有效,举例来说:sales数据库中的xyz用户帐户不同于inventory数据库中的xyz用户帐户,即使这两个帐户有相同的ID。用户由固定数据库角色db_owner成员定义。
    “用户”在定义时便与一个“登录名”相关联(why?!)例如,db_owner角色成员可以使“登录名”Joe与sales数据库中的“用户”abc和employee数据库中的“用户”def相关联。默认情况下,“登录名”和“用户”相同。
    下例说明给   Windows   2000   帐户授予对数据库的访问权限,并使该登录与数据库中的用户相关联:
  USE   master  
  GO  
  sp_grantlogin   'NETDOMAIN/Sue'  
  GO  
  sp_defaultdb   @loginame    'NETDOMAIN/Sue',   defdb    'sales'  
  GO  
  USE   sales  
  GO  
  sp_grantdbaccess   'NETDOMAIN/Sue',   'Sue'  
  GO
    在sp_grantlogin语句中,授予Windows2000用户NETDOMAIN/Sue(对库来说即“登录名”)访问Microsoft SQL Server2000的权限。sp_defaultdb语句使sales数据库成为该“登录名”的默认数据库。sp_grantdbaccess语句给NETDOMAIN/Sue“登录名”提供了访问sales数据库的权限,并将其在sales内的“用户”设置成Sue。

    下例说明定义SQL Server“登录名”,指派默认数据库,并使该登录与数据库中的用户相关联:  
  USE   master  
  GO  
  sp_addlogin   @loginame='TempWorker',@password = 'fff',defdb='sales'  
  GO
  USE   sales  
  GO  
  sp_grantdbaccess  'TempWorker'  
  GO  
    sp_addlogin语句定义了一个供各种临时工作人员使用的SQL Server“登录名”。该语句还将sales数据库指定为此登录的默认数据库。sp_grantdbaccess语句给TempWorker“登录名”授予了对sales数据库的访问权限,由于没有指定用户名,默认为TempWorker。  
     数据库中的用户由用户ID而非“登录名”标识。例如,在每个数据库中,sa是映射到特殊“用户”帐户dbo(数据库所有者)的登录帐户。所有与安全有关的Transact-SQL语句都将该“用户”作为security_name参数使用。如果sysadmin固定服务器角色成员和db_owner固定数据库角色成员对系统进行设置,使每个用户的“登录名”和“用户”都相同,就不容易混淆权限的管理和理解,但不必非这样做。
  在SQL Server数据库中,guest帐户是特殊的用户帐户。如果用户使用USE database语句访问的数据库中没有与此用户关联的帐户,此用户就与guest用户相关联。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值