Sql 确定哪些表已向特定自定义角色授予SELECT权限
我们被要求获取SQL Server 2008数据库中所有表的列表,这些表具有特定角色的SELECT权限。它需要在查询中,因为然后我们需要编写一个脚本来撤销授予SELECT权限的操作Sql 确定哪些表已向特定自定义角色授予SELECT权限,sql,sql-server-2008,Sql,Sql Server 2008,我们被要求获取SQL Server 2008数据库中所有表的列表,这些表具有特定角色的SELECT权限。它需要在查询中,因为然后我们需要编写一个脚本来撤销授予SELECT权限的操作 谢谢。这并不是一个完整的答案(也不可能是-我没有SQL Server安装可供摆弄),但希望它能让您走上正轨。它正在执行一个存储过程 USE yourDB; GO EXEC sp_table_privileges @table_name = '%'; 在结果集中,您主要感兴趣的是第三列表名,第六列权限 资料来
谢谢。这并不是一个完整的答案(也不可能是-我没有SQL Server安装可供摆弄),但希望它能让您走上正轨。它正在执行一个存储过程
USE yourDB;
GO
EXEC sp_table_privileges
@table_name = '%';
在结果集中,您主要感兴趣的是第三列表名
,第六列权限
资料来源:
在我看来,下一步——假设这是您正在查找的数据——将使用一个SQL语句包装该SQL语句,该语句将EXEC语句的结果插入到一个临时表中,然后您可以根据需要对该表进行切片。这项工作留给读者作为练习(轻推)。关于的第三个答案可能在扩展上面给出的查询时有所帮助,但始终是YMMV