C#Microsoft SQL Server 2012 GRANT语法

时间:2014-06-03 21:53:10

标签: c# sql sql-server sql-server-2012

我对我的特定情况的授权语法有疑问。

我创建了一个实例名称为: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]的内容是什么?

2 个答案:

答案 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]解决了这个问题!