MCSE 问题:EXEC sp_grantdbaccess 'Peter',' PeterU'是什么意思?

为什么有了Windows账号还要运行这一句?直接运行下面这句可以么?

EXEC sp_addrolemember 'db_datareader','Peter'

(准备MCSE,周六考70228。后面还会有问题。请高手指点。谢谢!)
---------------------------------------------------------------

建议多看看帮助!

sp_grantdbaccess
为 Microsoft® SQL Server™ 登录或 Microsoft Windows NT® 用户或组在当前数据库中添加一个安全帐户,并使其能够被授予在数据库中执行活动的权限。

语法
sp_grantdbaccess [@loginame =] 'login'
[,[@name_in_db =] 'name_in_db' [OUTPUT]]

参数
[@loginame =] 'login'

当前数据库中新安全帐户的登录名称。Windows NT 组和用户必须用 Windows NT 域名限定,格式为"域\用户",例如 LONDON\Joeb。登录不能使用数据库中已有的帐户作为别名。login 的数据类型为 sysname,没有默认值。

[@name_in_db =] 'name_in_db' [OUTPUT]

数据库中帐户的名称。name_in_db 是 sysname 类型的 OUTPUT 变量,默认值为 NULL。如果没有指定,则使用 login。如果将其指定为 NULL 值的 OUTPUT 变量,则设置 @name_in_db 为 login。当前数据库不必存在 name_in_db。

返回代码值
0(成功)或 1(失败)

注释
SQL Server 用户名可以包含 1 到 128 个字符,包括字母、符号和数字。但是,用户名不能:

含有反斜线符号 (\)。

为 NULL,或为空字符串 ('')。
在使用安全帐户访问数据库之前,必须授予它对当前数据库的访问权。使用 sp_grantdbaccess 仅可以管理当前数据库中的帐户。若要从数据库中删除帐户,请使用 sp_revokedbaccess。

如果当前数据库中没有 guest 安全帐户,而且 login 为 guest,则可以添加 guest 的安全帐户。

sa 登录不能添加到数据库中。

不能从用户定义的事务中执行 sp_grantdbaccess。

权限
只有 sysadmin 固定服务器角色、db_accessadmin 和 db_owner 固定数据库角色的成员才能执行 sp_grantdbaccess。

示例
下面的示例在当前数据库中为 Windows NT 用户 Corporate\GeorgeW 添加帐户,并取名为 Georgie。

EXEC sp_grantdbaccess 'Corporate\GeorgeW', 'Georgie'

---------------------------------------------------------------

前一个是登陆名,后一个是数据库用户名,好比sa和dbo的关系。
---------------------------------------------------------------

登陆用户名要根据角色的权限操作数据库呀!

Published At
Categories with 数据库类
comments powered by Disqus