如何:定义数据库对象的权限

可以定义权限以授予或撤消对数据库、数据库对象甚至表中特定列的访问权。 若要定义这些权限,您必须更新 database.sqlpermissions 文件。

打开 database.sqlpermissions 文件

  1. 在 Visual Studio 中,打开包含要在其中定义权限的数据库项目的解决方案。

  2. 在解决方案资源管理器中,展开数据库项目节点,再展开“属性”节点,然后双击 Database.sqlpermissions。

授予或撤消权限

可以三个粒度级别授予或撤消权限:

  • 数据库级别   在此级别授予或撤消权限可限制对操作(如 CREATE TABLE)的访问。

  • 数据库对象级别   在此级别授予或撤消权限可限制对特定数据库对象(如表)的访问的类型。

  • 表列级别   在此级别授予或撤消权限可限制对表中特定列的访问的类型。

授予数据库级别权限

  1. 打开 database.sqlpermissions 文件。

  2. 在结束 </Permissions> 标记之前添加以下 XML:

    <PermissionStatement Action="GRANT">
        <Permission>Operation</Permission>
        <Grantee>Username</Grantee>
    </PermissionsStatement>
    

    将 Operation 替换为要授予权限的操作。 例如,若要授予用于创建表的权限,则指定 CREATE TABLE。

    将 Username 替换为要授予此权限的用户。

  3. 保存并关闭 database.sqlpermissions 文件。

撤消数据库级别权限

  1. 打开 database.sqlpermissions 文件。

  2. 在结束 </Permissions> 标记之前添加以下 XML:

    <PermissionStatement Action="REVOKE">
        <Permission>Operation</Permission>
        <Grantee>Username</Grantee>
    </PermissionsStatement>
    

    将 Operation 替换为要撤消权限的操作。 例如,若要撤消用于创建表的权限,则指定 CREATE TABLE。

    将 Username 替换为要撤消权限的用户。

  3. 保存并关闭 database.sqlpermissions 文件。

授予数据库对象的权限

  1. 打开 database.sqlpermissions 文件。

  2. 在结束 </Permissions> 标记之前添加以下 XML:

    <PermissionStatement Action="GRANT">
        <Permission>Operation</Permission>
        <Grantee>Username</Grantee>
        <Object Name="ObjectName" Schema="SchemaName" Type="OBJECT"/>
    </PermissionsStatement>
    

    将 Operation 替换为要授予权限的操作。 例如,若要授予用于从表中选择数据的权限,则指定 SELECT。

    将 Username 替换为要授予此权限的用户。

    将 ObjectName 替换为要授予权限的对象。

    将 SchemaName 替换为包含该对象的架构。

  3. 保存并关闭 database.sqlpermissions 文件。

撤消数据库对象的权限

  1. 打开 database.sqlpermissions 文件。

  2. 在结束 </Permissions> 标记之前添加以下 XML:

    <PermissionStatement Action="REVOKE">
        <Permission>Operation</Permission>
        <Grantee>Username</Grantee>
        <Object Name="ObjectName" Schema="SchemaName" Type="OBJECT"/>
    </PermissionsStatement>
    

    将 Operation 替换为要授予权限的操作。 例如,若要授予用于从表中选择数据的权限,则指定 SELECT。

    将 Username 替换为要授予此权限的用户。

    将 ObjectName 替换为要授予权限的对象。

    将 SchemaName 替换为包含该对象的架构。

  3. 保存并关闭 database.sqlpermissions 文件。

授予列的权限

  1. 打开 database.sqlpermissions 文件。

  2. 在结束 </Permissions> 标记之前添加以下 XML:

    <PermissionStatement Action="GRANT">
        <Permission>Operation</Permission>
        <Grantee>Username</Grantee>
              <Object Name ="TableName" Schema ="SchemaName" Type ="OBJECT">
                <Columns Treatment ="INCLUDE">
                  <Column Name="ColumnName"/>
                </Columns>
              </Object>
    </PermissionsStatement>
    

    将 Operation 替换为要授予权限的操作。 例如,若要授予用于创建表的权限,则指定 CREATE TABLE。

    将 Username 替换为要授予此权限的用户。

    将 TableName 替换为要授予权限的对象。

    将 SchemaName 替换为包含该对象的架构。

    将 ColumnName 替换为要将权限应用到的列的名称。 您可以指定多个 <Column> 项以将权限应用于多个列。

  3. 保存并关闭 database.sqlpermissions 文件。

撤消列的权限

  1. 打开 database.sqlpermissions 文件。

  2. 在结束 </Permissions> 标记之前添加以下 XML:

    <PermissionStatement Action="REVOKE">
        <Permission>Operation</Permission>
        <Grantee>Username</Grantee>
              <Object Name ="TableName" Schema ="SchemaName" Type ="OBJECT">
                <Columns Treatment ="INCLUDE">
                  <Column Name="ColumnName"/>
                </Columns>
              </Object>
    </PermissionsStatement>
    

    将 Operation 替换为要授予权限的操作。 例如,若要授予用于创建表的权限,则指定 CREATE TABLE。

    将 Username 替换为要授予此权限的用户。

    将 TableName 替换为要授予权限的对象。

    将 SchemaName 替换为包含该对象的架构。

    将 ColumnName 替换为要将权限应用到的列的名称。 您可以指定多个 <Column> 项以将权限应用于多个列。

  3. 保存并关闭 database.sqlpermissions 文件。

请参见

任务

如何:创建数据库对象

如何:修改数据库对象

概念

创建和修改数据库和服务器对象