Вход на сайт
Benutzer v SQL2008 : zapros s sysobjects s "sa" und 'user': comische performance
144 просмотров
Перейти к просмотру всей ветки
в ответ rimqpp0 31.08.09 11:16
Alex,
Ну, работающее решение у Вас уже есть :)
То же самое в части таблиц (аналогично, процедуры-функции) можно было получить запросом:
SELECT
ObjectName
, [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
ObjectName = QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
FROM (SELECT *
FROM INFORMATION_SCHEMA.TABLES
--UNION ALL
) o
) o
Ну, работающее решение у Вас уже есть :)
То же самое в части таблиц (аналогично, процедуры-функции) можно было получить запросом:
SELECT
ObjectName
, [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
ObjectName = QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
FROM (SELECT *
FROM INFORMATION_SCHEMA.TABLES
--UNION ALL
) o
) o