我对我的特定情况的授权语法有疑问。
我创建了一个实例名称为:MYINSTANCE的数据库 我的DB被称为:MyDB
我已经运行了一个生成新表的SQL命令,现在我想为我的用户授予选择和更新权限。
我正在使用连接字符串,并启用了集成安全性:
Data Source=.\\MYINSTANCE;Initial Catalog=MyDB;Integrated Security=true
我正在尝试更改的Grant语法是:
sqlCommand = new SqlCommand(
@"GRANT SELECT, UPDATE ON tblUnits TO [INET_ACCOUNT]", sqlConnection);
sqlCommand.ExecuteNonQuery();
现在我的数据库所有者是:Andy-PC \ Andy我想知道用我当前的设置替换TO [INET_ACCOUNT]的内容是什么?
答案 0 :(得分:1)
您可能知道[INET_ACCOUNT]指的是授予权限的主体。因此,您需要对需要该表的“选择”访问权限的用户进行更新。以下是来自MSDN的GRANT的语法:
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
。
答案 1 :(得分:0)
答案是肯定的[Andy-PC \ Andy]解决了这个问题!