SQL Server数据库技术(96)

发表于:2007-07-13来源:作者:点击数: 标签:
14.3.1 数据库 用户简介 数据库用户用来指出哪一个人可以访问哪一个数据库。在一个数据库中,用户ID 惟一标识一个用户,用户对数据的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的,用户账号总是基于数据库的,即两个不同数据库中可以有两个
14.3.1 数据库用户简介
    数据库用户用来指出哪一个人可以访问哪一个数据库。在一个数据库中,用户ID 惟一标识一个用户,用户对数据的访问权限以及对数据库对象的所有关系都是通过用户账号来控制的,用户账号总是基于数据库的,即两个不同数据库中可以有两个相同的用户账号。
    在数据库中,用户账号与登录账号是两个不同的概念。一个合法的登录账号只表明该账号通过了NT 认证或SQL Server 认证,但不能表明其可以对数据库数据和数据对象进行某种或某些操作,所以一个登录账号总是与一个或多个数据库用户账号(这些账号必须分别存在相异的数据库中)相对应,这样才可以访问数据库。例如,登录账号sa 自动与每一个数据库用户dbo 相关联。
    通常而言,数据库用户账号总是与某一登录账号相关联,但有一个例外,那就是guest用户。

    在安装系统时,guest 用户被加入到master、 pubs、 tempdb 和Northwind 数据中,那么SQL Server 为什么要进行这样的处理呢?让我们看看在用户通过NT 认证或SQLServer 认证而成功登录到SQL Server 之后,SQL Server 又做了哪些事情:

注意:通常我们可以像删除或添加其它有户那样删除或添加guest用户,但不能从master或tempdb数据库中删除该用户,并且在一个新建的数据库中不存在guest用户,除非将其添加进行。

14.3.2 管理数据库用户
1 利用SQL Server Enterprise Manager管理数据库用户
创建新数据库用户利用SQL Server Enterprise Manager 创建一个新数据库用户要执行以下步骤:
(1) 启动SQL Server Enterprise Manager, 单击登录服务器旁边的‘+’ 标志。
(2) 打开Database 文件夹,打开要创建用户的数据库。
(3) 右击User 图标,在弹出菜单中选择 New Database User, 弹出New Database User – New User 对话框。如图14-3 所示。
(4) 在Login 选择框内选择已经创建的登录账号、在User 选择框内输入数据库用户名称。
(5)在Database role membership 下的选项框中为该用户选择数据库角色(关于数据库角色将在角色一节中作详细介绍)。
(6)单击确定按钮。
    当然,在创建一个SQL Server 登录账号时,就可以先为该登录账号定出其在不同数据库中所使用的用户名称,这实际上也完成了创建新的数据库用户这一任务。其操作步骤见“14.2.1 使用SQL Server Enterprise Manager 管理SQL Server 登录”。 在打开的SQL Server Properties – New Login 对话框中选择Database Aclearcase/" target="_blank" >ccess 标签页。见图14-4 所示。


查看、删除数据库用户

    在SQL Server Enterprise Manager 中,选中User 图标(创建数据库用户的第三步),则在右面的窗格中显示当前数据库的所有用户。如图14-5 所示。
    选中User 图标后,在右面窗格中右击想要删除的数据库用户,则会弹出选项菜单,然后选择Delete, 则会从当前数据库中删除该数据库用户。见图14-5。



2 利用系统过程管理数据库用户:
SQL Server 利用以下系统过程管理数据库用户
sp_adduser    sp_granddbaccess
sp_dropuser   sp_revokedbaccess
sp_helpuser

    使用sp_adduser和sp_dropuser是为了保持以前版本相兼容,所以我们强烈主张使用sp_granddbaccess和sp_revokedbacces。

创建新数据库用户
    在数据库管理简介部分我们已经指出,除了guest 用户外,其它用户必须与某一登录账号相匹配,所以,正如在图14-4 中所见到的那样,不仅要输入新创建的新数据库用户名称,还要选择一个已经存在的登录账号。同理,当我们使用系统过程时,也必须指出登录账号和用户名称。



注意:使用该系统过程总是为登录账号设置一个在当前数据库中的用户账号,如果设置访登录者在其它数据库中的用户账号,必须首先使用Use命令,将其设置为当前数据库。



    对于sp_granddbaccess和sp_revokedaccess这两上系统过程,只有db_owner和db_access admin数据库角色才有执行它的权限。


 
  

原文转自:http://www.ltesting.net