Что такое таблица "бог"? - PullRequest
0 голосов
/ 21 июня 2011
IF  EXISTS (SELECT * FROM sys.all_objects WHERE name = N'SOMELOGIN')
DROP USER [SOMELOGIN]
GO

Не работает, потому что USER SOMELOGIN не живет в sys.all_objects.

Есть ли глобальная таблица "богов", в которую я могу заглянуть, чтобы увидеть, существует ли что-то. (т. е. удаление, когда оно не существует, не выдает ошибку)

В качестве альтернативы существует ли онлайн-ресурс для определения местонахождения определенных типов объектов?

Мне нужно сбросить следующее

  • USER
  • ASYMMETRIC KEY
  • LOGIN
  • CERTIFICATE

Ответы [ 3 ]

1 голос
/ 21 июня 2011

Надеюсь эта ссылка может быть полезной.Все необходимые вам виды находятся под Представления каталога безопасности .Кроме того, вам, вероятно, нужно запросить sys.database_principals вместо устаревших sysusers и syslogins

1 голос
/ 21 июня 2011

sys.objects используется для объектов в базе данных, таких как таблицы, хранимые процедуры, представления и т. Д.

Я думаю, вам нужны следующие таблицы:

SELECT * FROM sys.sysusers
WHERE [name] = 'someUser'

SELECT * FROM sys.asymmetric_keys
WHERE [name] = 'someKey'

SELECT * FROM sys.certificates
WHERE [name] = 'someCertificate'

SELECT * FROM sys.syslogins
WHERE [name] = 'someLogin'

РЕДАКТИРОВАТЬ

Ближайшая вещь, которую я могу найти для детализации системных представлений, это this .Он разделяет их по типу представления.Например, детализация до Catalog Views> Security Catalog Views даст вам представления для представлений, связанных с безопасностью например, sys.asymmetric_keys

Я не знаю ничего, что даст вамLogins> sys.syslogins тип отображения.

0 голосов
/ 21 июня 2011
  • USER => SELECT * FROM sys.sysusers
  • АСИММЕТРИЧЕСКИЙ КЛЮЧ => SELECT * FROM sys.asymmetric_keys
  • ВХОД => SELECT * FROM sys.syslogins
  • СЕРТИФИКАТ => SELECT * FROM sys.certificates
...