SQL Serverでは、sysmail_delete_profileaccount_sp
を使用できます。 プロファイルからデータベースメールアカウントを削除するためのストアドプロシージャ。
アカウントを特定のプロファイルから削除することも、すべてから削除することもできます。 プロファイル。特定のプロファイルからすべてのアカウントを削除することもできます。
それが機能する方法は、2つの引数を提供することです。アカウント名またはそのID、およびプロファイル名またはそのID。プロファイルの引数を省略すると、アカウントはすべてのプロファイルから削除されます。アカウントの引数を省略すると、すべてのアカウントがプロファイルから削除されます。
特定のプロファイルから特定のアカウントを削除する
単一のプロファイルからアカウントを削除する方法を示す例を次に示します。
まず、sysmail_help_profileaccount_sp
を呼び出しましょう アカウント/プロファイルの関連付けがいくつあるかを確認します。
EXEC msdb.dbo.sysmail_help_profileaccount_sp;
結果:
+--------------+-------------------+--------------+----------------+-------------------+ | profile_id | profile_name | account_id | account_name | sequence_number | |--------------+-------------------+--------------+----------------+-------------------| | 3 | DB Admin Profile | 3 | DB Admin | 1 | | 2 | DB Public Profile | 2 | DB Public | 1 | +--------------+-------------------+--------------+----------------+-------------------+
私には2つの協会があります。最初のものを削除しましょう。これは、「DB管理者」と呼ばれるアカウントが「DB管理者プロファイル」と呼ばれるプロファイルに属する場所です。
アカウント名とプロファイル名に基づいて削除する方法は次のとおりです。
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@profile_name = 'DB Admin Profile',
@account_name = 'DB Admin';
プロファイルとアカウント名はsysnameです デフォルトはNULL
。
IDを代わりに使用することを選択した場合、IDは sysname デフォルトはNULL
。
それでは、sysmail_help_profileaccount_sp
を呼び出しましょう。 繰り返しになりますが、現在の関連付けの数を確認します。
EXEC msdb.dbo.sysmail_help_profileaccount_sp;
結果:
+--------------+-------------------+--------------+----------------+-------------------+ | profile_id | profile_name | account_id | account_name | sequence_number | |--------------+-------------------+--------------+----------------+-------------------| | 2 | DB Public Profile | 2 | DB Public | 1 | +--------------+-------------------+--------------+----------------+-------------------+
予想どおり、現在は2つ目しかありません。
すべてのプロファイルからアカウントを削除する
プロファイルの詳細を省略すると、すべてのプロファイルからアカウントを削除できます。つまり、アカウント名またはIDを提供しますが、プロファイルは提供しません。
このように:
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@account_name = 'DB Admin';
プロファイルからすべてのアカウントを削除する
アカウントの詳細を省略することで、プロファイルからすべてのアカウントを削除できます。つまり、プロファイル名またはIDを提供しますが、アカウントは提供しません。
このように:
EXEC msdb.dbo.sysmail_delete_profileaccount_sp
@profile_name = 'DB Admin Profile';
ストアドプロシージャの場所
sysmail_delete_profileaccount_sp
ストアドプロシージャはmsdbにあります データベースとその所有者はdbo 。したがって、 msdb の場合は、3つの部分からなる名前を付ける必要があります。 現在のデータベースではありません。