2017-02-04 17 views
0

管理者として機能する2つの管理者アカウント(サーバー管理およびActive Directory admin)があります。私の要件は、これらのアカウントの名前を見つけることです。私はsys.database_principlesビューとsys.sql_loginsビューを調べましたが、同じものに関連するものは見つかりませんでした。 SQLクエリから、情報を取得するのに役立つシステムビューが見つかりませんでした。誰でもここで私を助けてくれますか?Windows Azure SQLデータベースでサーバー管理者アカウント名を特定する方法

答えて

1

以下のTSQLスクリプトを使用して、サーバー管理およびActive Directory Adminアカウント名を取得することができます。

SELECT [name], [type], [type_desc], [authentication_type], [authentication_type_desc] FROM sys.database_principals 
WHERE (type = 'S' AND [name] != 'dbo' AND authentication_type = 1) OR 
(type = 'X' AND authentication_type = 4) 

重要な注意:

  1. あなたはまた、SQL Server Management Studioの最新バージョンの

を使用マスターシステムデータベース

  • に対してTSQLを実行する必要があります次のようにAzureポータルから両方のアカウント名を取得できます。 enter image description here

    参考:Controlling and granting database access

  • +0

    実はこのクエリが複数のレコードを返します。'CREATE LOGIN TestAdmin WITH PASSWORD =' <[email protected]> ';次のようにログインしてからログインしてみてください。 LOGIN TestAdminからユーザーTestAdminを作成してください 次に、回答に指定されたクエリを実行すると、ユーザーTestAdminも戻ります。 この結果セットから、どちらがサーバー管理者であるかわかりません。私の要求に応じて、クエリは2つのレコードのみを返す必要があります(スクリーンショットごとにRickと[email protected]を返す必要があります) –

    +0

    フィードバックをいただきありがとうございます。 SELECT * FROM sys.sysusers hasdbaccess = 1 AND islogin = 1 AND [name]!= 'dbo' – juvchan

    +0

    このクエリにも同じ問題があります。複数の行を返します。 –