Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách xóa tài khoản thư cơ sở dữ liệu khỏi hồ sơ trong SQL Server (T-SQL)

Trong SQL Server, bạn có thể sử dụng sysmail_delete_profileaccount_sp quy trình được lưu trữ để xóa tài khoản Thư cơ sở dữ liệu khỏi hồ sơ.

Bạn có thể xóa tài khoản khỏi một hồ sơ cụ thể hoặc bạn có thể xóa tài khoản khỏi tất cả hồ sơ. Bạn cũng có thể xóa tất cả các tài khoản khỏi một hồ sơ nhất định.

Cách nó hoạt động là, bạn cung cấp hai đối số; tên tài khoản hoặc ID của nó, và tên hồ sơ hoặc ID của nó. Nếu bạn bỏ qua đối số cho cấu hình, tài khoản sẽ bị xóa khỏi tất cả các cấu hình. Nếu bạn bỏ qua đối số cho tài khoản, thì tất cả các tài khoản sẽ bị xóa khỏi cấu hình.

Xóa một tài khoản cụ thể khỏi một hồ sơ cụ thể

Dưới đây là một ví dụ để minh họa cách xóa tài khoản khỏi một hồ sơ.

Đầu tiên, hãy gọi sysmail_help_profileaccount_sp để xem tôi có bao nhiêu liên kết tài khoản / hồ sơ.

EXEC msdb.dbo.sysmail_help_profileaccount_sp;

Kết quả:

+--------------+-------------------+--------------+----------------+-------------------+
| 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                 |
+--------------+-------------------+--------------+----------------+-------------------+

Tôi có hai hiệp hội. Hãy xóa cái đầu tiên. Đây là nơi tài khoản có tên "Quản trị viên DB" thuộc về cấu hình được gọi là "Hồ sơ quản trị viên DB").

Dưới đây là cách xóa chúng dựa trên tên tài khoản và tên hồ sơ.

EXEC msdb.dbo.sysmail_delete_profileaccount_sp
    @profile_name = 'DB Admin Profile',  
    @account_name = 'DB Admin';

Tên hồ sơ và tài khoản là sysname với mặc định là NULL .

Các ID, nếu bạn chọn sử dụng thay thế, là sysname với mặc định là NULL .

Bây giờ chúng ta hãy gọi sysmail_help_profileaccount_sp một lần nữa, để xem chúng ta hiện có bao nhiêu hiệp hội.

EXEC msdb.dbo.sysmail_help_profileaccount_sp;

Kết quả:

+--------------+-------------------+--------------+----------------+-------------------+
| profile_id   | profile_name      | account_id   | account_name   | sequence_number   |
|--------------+-------------------+--------------+----------------+-------------------|
| 2            | DB Public Profile | 2            | DB Public      | 1                 |
+--------------+-------------------+--------------+----------------+-------------------+

Đúng như dự đoán, chúng tôi hiện chỉ có cái thứ hai.

Xóa Tài khoản khỏi TẤT CẢ Tiểu sử

Bạn có thể xóa tài khoản khỏi tất cả hồ sơ bằng cách bỏ qua chi tiết hồ sơ. Nói cách khác, hãy cung cấp tên tài khoản hoặc ID, nhưng không cung cấp hồ sơ.

Như thế này:

EXEC msdb.dbo.sysmail_delete_profileaccount_sp 
    @account_name = 'DB Admin';

Xóa TẤT CẢ Tài khoản khỏi Tiểu sử

Bạn có thể xóa tất cả tài khoản khỏi hồ sơ bằng cách bỏ qua chi tiết tài khoản. Nói cách khác, hãy cung cấp tên hoặc ID hồ sơ, nhưng không cung cấp tài khoản.

Như thế này:

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

Vị trí của Thủ tục được Lưu trữ

sysmail_delete_profileaccount_sp thủ tục được lưu trữ nằm trong msdb cơ sở dữ liệu và chủ sở hữu của nó là dbo . Do đó, bạn sẽ cần cung cấp cách đặt tên ba phần nếu msdb không phải là cơ sở dữ liệu hiện tại.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm hiểu xem một đối tượng có phải là khóa ngoại với OBJECTPROPERTY () trong SQL Server hay không

  2. Cách cài đặt SQL Server trên Ubuntu 18.04

  3. Cách tạo Ràng buộc Kiểm tra trên Cột Đơn trong SQL Server - Hướng dẫn SQL Server / TSQL Phần 83

  4. Sự khác biệt giữa Scope_Identity (), Identity (), @@ Identity và Ident_Current () là gì?

  5. Làm cách nào để thoát khỏi một trích dẫn duy nhất trong SQL Server?