
What's the best way to implement a SQL script that will grant permissions to a database role on all the user tables in a database?实现SQL脚本的最佳方法是什么,该脚本将授予数据库角色对数据库中所有用户表的选择,引用,插入,更新和删除权限? 理想情况下,此脚本可以多次运行,因为新表已添加到数据库中。 SQL Server Management Studio会为单个数据库对象生成脚本,但是我正在寻找更多的"即发即弃"脚本。 我敢肯定有一种更简单的方法,但是您可以遍历数据库中的sysobjects表,并向存在的任何用户表对象授予权限。每当添加新表时,您都可以多次运行该命令。 有一个未记录的MS过程,称为sp_MSforeachtable,您可以使用它,该过程肯定在2000年和2005年。 要授予选择权限,用法是:
要授予其他权限,请为每个权限添加一条新语句,或仅将其添加到命令中,如下所示:
稍作调整后,也有可能将角色名称也转换为参数。 齐默尔曼博士在这里正确。我希望编写一种存储过程,该存储过程具有游标在用户对象之间循环,并使用立即执行来影响授予。像这样的东西:
然后您可以开除并忘记:
我们在工作地点也使用类似的内容。遍历系统的每个表,视图,存储过程。
|