我必须授予REFERENCES登录说的权限sql_login。
REFERENCES
sql_login
我可以授予REFERENCES单个表的授予权限,例如
GRANT REFERENCES ON Mytable TO sql_login
有什么办法可以授予REFERENCES我登录所有表的权限,还是有什么错误呢?
我自己找到了一种方法
DECLARE @sql VARCHAR(max) = '' SET @sql =(SELECT distinct Concat('GRANT REFERENCES ON ', TABLE_NAME, ' TO sql_login; ') FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE IN ( 'PRIMARY KEY', 'UNIQUE' ) AND table_name IS NOT NULL FOR xml path('')) --print @sql EXEC (@sql)
sys.tables 版本
sys.tables
DECLARE @sql VARCHAR(max) = '' SET @sql =(SELECT Concat('GRANT REFERENCES ON ', name, ' TO sql_login; ') FROM sys.tables WHERE Objectproperty(OBJECT_ID, 'TableHasPrimaryKey') = 1 AND type = 'u' FOR xml path('')) --print @sql EXEC (@sql)
不确定这是否是实现此目标的理想方法