開発環境のユーザはdb_ownerなので気にしていなかったが、
本番環境にもっていったときに権限つけ忘れすることありませんか?
システムの修正で小さいビューやストアド追加したときに忘れるんですけど、そうですか、ぼくだけですか
ということで、権限漏れをチェックしつつ、それっぽいGRANT文を吐きだしてくれるSQL文
-- ◆ユーザへの権限設定漏れ確認 BEGIN -- ↓対象のユーザ名を設定 DECLARE @name sysname = 'XXXXX' -- 一時テーブルを作成(対象ユーザで許可している内容) CREATE TABLE #temp( [owner] sysname , [object] sysname , [grantee] sysname , [grantor] sysname , [protecttype] char (10) , [action] varchar (20) , [column] sysname ) INSERT INTO #temp EXECUTE sp_helprotect @username = @name --テーブル・ビュー・ストアド一覧の内容とぶつける SELECT B.NAME AS OWNER , A.NAME , A.TYPE , CASE A.TYPE WHEN 'P' THEN 'GRANT EXECUTE ON [' + A.[name] + '] TO [' + @name + '];' WHEN 'U' THEN 'GRANT SELECT,INSERT,UPDATE,DELETE ON [' + A.[name] + '] TO [' + @name + '];' WHEN 'V' THEN 'GRANT SELECT ON [' + A.[name] + '] TO [' + @name + '];' ELSE NULL END AS OMAKE FROM sysobjects A INNER JOIN sysusers B ON A.UID = B.UID LEFT JOIN #temp C ON A.name = C.object WHERE A.TYPE IN ('U', 'IF', 'TF', 'V', 'P') AND A.STATUS >= 0 AND C.object IS NULL ORDER BY A.TYPE , A.NAME -- 一時テーブルを削除 drop table #temp end