dbTalk Databases Forums  

How to Generate all grants to a user role? (SQL Server 2000)

comp.databases.ms-sqlserver comp.databases.ms-sqlserver


Discuss How to Generate all grants to a user role? (SQL Server 2000) in the comp.databases.ms-sqlserver forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Mark D Powell
 
Posts: n/a

Default How to Generate all grants to a user role? (SQL Server 2000) - 04-24-2007 , 03:04 PM






Using SQL Server 2000 I need to extract all the grants made to a user
created role so that I can recreate the role in another version of a
database and there are more grants than I want to do by hand. Does
anyone have SQL or T-SQL to perform this task that they would be
willing to share?

I tried searching the archives but either I missed the post or what I
want isn't posted.

Thank you.

Mark D Powell


Reply With Quote
  #2  
Old   
Erland Sommarskog
 
Posts: n/a

Default Re: How to Generate all grants to a user role? (SQL Server 2000) - 04-24-2007 , 05:07 PM






Mark D Powell (Mark.Powell (AT) eds (DOT) com) writes:
Quote:
Using SQL Server 2000 I need to extract all the grants made to a user
created role so that I can recreate the role in another version of a
database and there are more grants than I want to do by hand. Does
anyone have SQL or T-SQL to perform this task that they would be
willing to share?

I tried searching the archives but either I missed the post or what I
want isn't posted.
The system table you need to look at is sysprotects. Here is a query
that gives the permissions for the most common commands. If you need
database permissions like CREATE TABLE, you will need to extend the
query below. I suspect that the id column has a special value in this
case; I have not investigated this myself.


SELECT CASE protecttype
WHEN 204 THEN 'GRANT'
WHEN 205 THEN 'GRANT'
WHEN 206 THEN 'DENY'
END + ' ' +
CASE action
WHEN 224 THEN 'EXECUTE'
WHEN 195 THEN 'INSERT'
WHEN 196 THEN 'DELETE'
WHEN 193 THEN 'SELECT'
WHEN 197 THEN 'UPDATE'
END + ' ON ' +
user_name(o.uid) + '.' + o.name +
' TO ' + user_name(p.uid)
FROM sysprotects p
JOIN sysobjects o ON p.id = o.id


--
Erland Sommarskog, SQL Server MVP, esquel (AT) sommarskog (DOT) se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.