0
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
4

3 に答える 3

1

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'

編集

システムビューの詳細について私が見つけることができる最も近いものはこれです。ビューのタイプごとにそれらを分割します。たとえば、Catalog Views>にドリルダウンするSecurity Catalog Viewsと、セキュリティ関連のビューのビューが表示されます。sys.asymmetric_keys

Logins>sys.sysloginsタイプのマッピングを提供するものは何も知りません。

于 2011-06-21T13:17:41.093 に答える
1

このリンクがお役に立てば幸いです。必要なビューはすべてSecurity Catalog Views の下にあります。sys.database_principalsまた、廃止された代わりにsysusersクエリを実行する必要がある可能性があります。syslogins

于 2011-06-21T13:34:05.037 に答える
0
  • ユーザー=>SELECT * FROM sys.sysusers
  • 非対称鍵=>SELECT * FROM sys.asymmetric_keys
  • ログイン=>SELECT * FROM sys.syslogins
  • 証明書=>SELECT * FROM sys.certificates
于 2011-06-21T13:19:28.550 に答える