Extracting/Copying Users and Permissions Between Databases:
==========================================================
http://www.codeguru.com/cpp/data/mfc_database/storedprocedures/article.php/c12375__3/
----------------------------------------------------------
DECLARE @currentGroup SYSNAME
SET @currentGroup = 'BINCK\app_tekortentool'
EXEC master..xp_logininfo @currentGroup, @option='members'
------------------------------------------------------------
CREATE PROCEDURE sp_resolveperms AS
-- Programmer: Mark J. McGinty
-- Purpose: Resolve/list object-level permissions
-- Date: 19 Oct 2004
SELECT [object name], [user or role],
CASE MAX([select]) WHEN 205 THEN 'allowed' WHEN 206 THEN
'denied' ELSE '' END AS [select],
CASE MAX([insert]) WHEN 205 THEN 'allowed' WHEN 206 THEN
'denied' ELSE '' END AS [insert],
CASE MAX([update]) WHEN 205 THEN 'allowed' WHEN 206 THEN
'denied' ELSE '' END AS [update],
CASE MAX([delete]) WHEN 205 THEN 'allowed' WHEN 206 THEN
'denied' ELSE '' END AS [delete],
CASE MAX([execute]) WHEN 205 THEN 'allowed' WHEN 206 THEN
'denied' ELSE '' END AS [execute],
CASE MAX([DRI]) WHEN 205 THEN 'allowed' WHEN 206 THEN
'denied' ELSE '' END AS [DRI]
FROM (
SELECT TOP 100 PERCENT o.name AS [object name],
user_name(o.uid) AS [schema],
user_name(p.uid) AS [user or role],
o.sysstat & 0xf AS [sysstat],
p.id,
CASE action WHEN 193 THEN 'select'
WHEN 195 THEN 'insert'
WHEN 196 THEN 'update'
WHEN 197 THEN 'delete'
WHEN 224 THEN 'execute'
WHEN 26 THEN 'DRI'--References
END AS PrivilegeDesc,
CASE action WHEN 193 THEN protecttype ELSE 0 END AS [select],
CASE action WHEN 195 THEN protecttype ELSE 0 END AS [insert],
CASE action WHEN 196 THEN protecttype ELSE 0 END AS [update],
CASE action WHEN 197 THEN protecttype ELSE 0 END AS [delete],
CASE action WHEN 224 THEN protecttype ELSE 0 END AS [execute],
CASE action WHEN 26 THEN protecttype ELSE 0 END AS [DRI],
CASE protecttype WHEN 205 THEN 'allowed'
WHEN 206 THEN 'denied'
ELSE 'unknown' END AS AccessGrant,
action,
protecttype
FROM dbo.sysprotects p, dbo.sysobjects o
WHERE o.id = p.id
AND p.action IN (193, 195, 196, 197, 224, 26)
--AND p.id = 437576597
ORDER by 1, 2
) drs GROUP BY [object name], [user or role]
GO
exec sp_resolveperms
woensdag 31 december 2008
Abonneren op:
Posts (Atom)