sql >> データベース >  >> RDS >> Sqlserver

SQL Server(T-SQL)でデータベースメールアカウントとデータベースプリンシパル間の関連付けを検索する

    SQL Serverでは、sysmail_help_principalprofile_spを使用できます。 msdbのストアドプロシージャ データベースを使用して、データベースメールアカウントとデータベースプリンシパル間のすべての関連付けのリストを取得します。

    プリンシパル名/IDまたはプロファイル名/IDに基づいてアカウント情報を返すこともできます。

    すべての関連付けを返す

    すべての関連付けを返すには、パラメータなしでストアドプロシージャを実行するだけです。

    EXEC msdb.dbo.sysmail_help_principalprofile_sp;

    結果(垂直出力を使用):

    principal_id   | 25
    principal_name | Marge
    profile_id     | 1
    profile_name   | DB Admin Profile
    is_default     | 1

    すべての列を表示するために横にスクロールする必要がないように、垂直出力を使用して結果をリストしました。

    私の場合、関連付けは1つだけです。

    sysmail_help_principalprofile_spに注意してください ストアドプロシージャはmsdbにあります データベースであり、dboが所有しています スキーマ。したがって、msdbの場合は、3つの部分からなる命名を使用する必要があります 現在のデータベースではありません。

    プリンシパル名/IDに基づく

    プリンシパル名またはIDをパラメーターとして渡すことにより、単一のプリンシパルに絞り込むことができます。

    プリンシパル名は、 msdb内のデータベースユーザーまたはロールの名前です。 データベース。

    プリンシパル名を渡す方法は次のとおりです。

    EXEC msdb.dbo.sysmail_help_principalprofile_sp
        @principal_name = 'Marge';

    そして、プリンシパルIDを渡す方法は次のとおりです。

    EXEC msdb.dbo.sysmail_help_principalprofile_sp
        @principal_id = 25;

    @principal_idに注意してください intとして提供されます 。

    プロファイル名/IDに基づく

    または、プロファイル名またはIDをパラメーターとして渡すことにより、単一のプロファイルに絞り込むことができます。

    プロファイル名を渡す方法は次のとおりです。

    EXEC msdb.dbo.sysmail_help_principalprofile_sp
        @profile_name = 'DB Admin Profile';

    プロファイルIDを渡す方法は次のとおりです。

    EXEC msdb.dbo.sysmail_help_principalprofile_sp
        @profile_id = 1;

    @profile_idに注意してください intとして提供されます 。


    1. SQLiteでテーブルの構造に関する情報を取得する4つの方法

    2. グループ化された現在の合計のための最良のアプローチ

    3. 個別の行のMYSQLsum()

    4. エラー:文字46のスキーマuser1_gmail_comの権限が拒否されました