sqlserver 不想mdm_zj用户查看mdm.TD_SUBJECT权限
时间: 2024-09-14 16:06:39 浏览: 40
在SQL Server中,如果你不想让名为"mdm_zj"的用户能够查看"mdm.TD_SUBJECT"表的数据,你可以通过以下几个步骤调整权限:
1. 登录到SQL Server Management Studio (SSMS) 或者使用Transact-SQL命令行工具。
2. 使用`GRANT`和`DENY`语句来管理权限。首先,你需要确保这个用户当前没有对该表的查询权限。可以运行类似下面的查询检查当前的权限设置:
```
SELECT * FROM sys.database_permissions
WHERE grantee_principal_id = DB_ID('mdm_zj') AND object_name = 'mdm.TD_SUBJECT';
```
3. 如果查询结果显示该用户有SELECT权限,使用`REVOKE`语句撤回权限,例如:
```sql
REVOKE SELECT ON mdm.TD_SUBJECT FROM mdm_zj;
```
这将阻止"mdm_zj"用户访问"TD_SUBJECT"表。
4. 如果希望更细致地控制,可以在特定条件下允许查询,可以使用`DENY`语句来禁止所有情况下的查询:
```sql
DENY SELECT ON mdm.TD_SUBJECT TO mdm_zj;
```
然后使用`GRANT`加上特定的WHERE条件来提供例外:
```sql
GRANT SELECT (column1, column2) ON mdm.TD_SUBJECT TO mdm_zj WITH GRANT OPTION
WHERE some_condition; -- 替换为实际的过滤条件
```
记住,`DENY`权限总是优先于`GRANT`,所以在应用上述策略时,请确保它们按照正确的顺序排列。
阅读全文