русский
Germany.ruForen → Архив Досок→ Programmierung

Benutzer v SQL2008 : zapros s sysobjects s "sa" und 'user': comische performance

31.08.09 11:16
Re: Benutzer v SQL2008 : zapros s sysobjects s "sa" und 'user': comische performance
 
  rimqpp0 гость
я сначала попробовал всевозможые granty useram дать.
grant CONTROL оказался самый "еффективный". но получилась чушь, т.к. дает почти 'sa' привилегии.
потом методом тыков нашел решение через sys.objects. для приведенного выше кода получается так:
ALTER VIEW [dbo].[V_Permissions] AS
SELECT TOP 100 PERCENT
REPLACE(REPLACE(REPLACE(ObjectName,'[dbo].',''),'[',''),']','') AS Name,
--has_perms_by_name(ObjectName, 'OBJECT', 'ANY') AS AnyPermission,
--has_perms_by_name(ObjectName, 'OBJECT', 'SELECT') AS SelectPermission,
--has_perms_by_name(ObjectName, 'OBJECT', 'INSERT') AS InsertPermission,
--has_perms_by_name(ObjectName, 'OBJECT', 'UPDATE') AS UpdatePermission,
--has_perms_by_name(ObjectName, 'OBJECT', 'DELETE') AS DeletePermission,
[Read] = CAST(CASE WHEN has_perms_by_name(ObjectName, 'OBJECT', 'SELECT')& 1 >0 THEN 1 ELSE 0 END AS BIT),
[Write]= CAST(CASE WHEN (has_perms_by_name(ObjectName, 'OBJECT', 'INSERT') & 1)*
(has_perms_by_name(ObjectName, 'OBJECT', 'UPDATE')& 1)*
(has_perms_by_name(ObjectName, 'OBJECT', 'DELETE') & 1) > 0 THEN 1 ELSE 0 END AS BIT)
FROM (SELECT
QUOTENAME(SCHEMA_NAME(schema_id)) + '.'
+ QUOTENAME(OBJECT_NAME(object_id)) AS ObjectName
FROM sys.objects
-- nur Tabellen, Sichten, User-Funktionen und Proceduren
WHERE TYPE IN ('U', 'V', 'P','TF','FN', 'SQ')
) AS o
ORDER BY ObjectName
Но представление об INFORMATION_SCHEMA пока смутное. Moжно в пару предложениях ваше мнение что ето такое?
 

Sprung zu