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

Trong SQL Server 2005, làm cách nào để viết truy vấn liệt kê tất cả thông tin đăng nhập, vai trò máy chủ của họ, người dùng tương ứng trong tất cả vai trò db, db?

Bạn không thể có một truy vấn liệt kê tất cả cơ sở dữ liệu vì danh sách này là động. Đặt cược tốt nhất của bạn là sử dụng sp_msforeachdb và có một lô tạo kết quả và trả về:

set nocount on;
create table  #result (sid varbinary(85), 
 server_principal_id int,
 database_id int,
 database_principal_id int);

exec ms_foreachdb 'insert into #result 
  (server_principal_id, database_id, database_principal_id)
select s.principal_id, 
  db_id(''?''),
  d.principal_id
from sys.server_principals s
join [?].sys.database_principals d
  on s.sid = d.sid;';

select * from #result;

Bạn có thể mở rộng điều này để bao gồm tư cách thành viên vai trò máy chủ và vai trò cơ sở dữ liệu khi bạn tìm ra hình dạng tập hợp kết quả thích hợp để tổng hợp tất cả thông tin đó trong một bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các loại con trỏ máy chủ SQL - Sự khác biệt giữa con trỏ địa phương và toàn cầu là gì | Hướng dẫn sử dụng SQL Server / TSQL

  2. Số lượng giao dịch sau khi THỰC HIỆN chỉ ra rằng câu lệnh GIAO DỊCH COMMIT hoặc ROLLBACK bị thiếu - SQL server 2005

  3. Sử dụng câu lệnh IF ELSE dựa trên Count để thực hiện các câu lệnh Chèn khác nhau

  4. Cách chèn giá trị vào cột nhận dạng theo cách thủ công trong bảng SQL Server - Hướng dẫn SQL Server / T-SQL Phần 41

  5. Tính tổng với RollUP của máy chủ SQL - nhưng chỉ có bản tóm tắt cuối cùng?