Как использовать PHP? [закрыто]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как использовать PHP? [закрыто]

Сообщение Anonymous »

-- Создайте временную таблицу для хранения результата xp_logininfo
CREATE TABLE #LoginInfo (

Код: Выделить всё

AccountName NVARCHAR(512),

Type NVARCHAR(50),

Privilege NVARCHAR(50),

MappedLoginName NVARCHAR(512),

PermissionPath NVARCHAR(512)
);
-- Объявите переменные для хранения динамического SQL и имени пользователя (из более крупного запроса)
DECLARE @sql NVARCHAR(MAX);
DECLARE @username NVARCHAR(512);
-- Получить имя пользователя (владельца базы данных) из таблицы sys.databases
-- Это тот же запрос, что и раньше, но просто извлекается имя владельца.
SELECT @username = suser_sname(db .owner_sid)
ИЗ sys.databases db
ГДЕ db.name = 'YourDatabaseName'; -- При необходимости укажите имя базы данных или удалите предложение WHERE, если для всех БД
-- Создайте динамический SQL для выполнения xp_logininfo для полученного имени пользователя
SET @sql = N'EXEC xp_logininfo @acctname = ''' + @username + ''', @option = ''all''';
-- Выполните динамический SQL и вставьте результат во временную таблицу
INSERT INTO #LoginInfo
EXEC sp_executesql @sql;
-- Теперь измените более крупный запрос, чтобы проверить, существуют ли права администратора во временной таблице.
SELECT @@SERVICENAME AS InstanceName,

Код: Выделить всё

db.name AS DatabaseName,

CASE

WHEN db.is_trustworthy_on = 1 THEN 'Yes'

WHEN db.is_trustworthy_on = 0 THEN 'No'

WHEN db.is_trustworthy_on IS NULL THEN 'NULL'

ELSE CAST(db.is_trustworthy_on AS VARCHAR)

END AS 'is_trustworthy_on',

suser_sname(db.owner_sid) AS db_owner,

-- Check if the admin privilege exists in the temp table

CASE

WHEN EXISTS (

SELECT 1 FROM #LoginInfo

WHERE Privilege = 'admin'

) THEN 'Yes'

ELSE 'No'

END AS 'is_sysadmin',

CASE

WHEN s1.is_disabled = 1 THEN 'Yes'

WHEN s1.is_disabled = 0 THEN 'No'

WHEN s1.is_disabled IS NULL THEN 'NULL'

ELSE CAST(s1.is_disabled AS VARCHAR)

END AS 'IsLoginDisabled',

CASE

WHEN s1.name IS NULL THEN 'Yes'

ELSE 'No'

END AS IsOrphaned,

CASE

WHEN dbm.mirroring_role = 1 THEN 'Mirroring - Primary'

WHEN dbm.mirroring_role = 2 THEN 'Mirroring - Secondary'

WHEN sys.fn_hadr_is_primary_replica(db.name) = 1 THEN 'AG - Primary'

WHEN sys.fn_hadr_is_primary_replica(db.name) = 0 THEN 'AG - Secondary'

ELSE 'None'

END AS 'DR_Role'
ИЗ базы данных sys.databases
LEFT JOIN sys.sql_logins sl ON db.owner_sid = sl.sid
LEFT JOIN sys.database_mirroring dbm ON db.database_id = dbm.database_id
LEFT JOIN sys.server_principals s1 ON db.owner_sid = s1.sid;
-- Удалить временную таблицу после использования
DROP TABLE #LoginInfo;

Подробнее здесь: https://stackoverflow.com/questions/790 ... to-use-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»