Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Di SQL Server 2005, bagaimana saya bisa menulis kueri untuk mendaftar semua login, peran server mereka, pengguna yang sesuai di semua db, peran db?

Anda tidak dapat memiliki satu kueri daftar semua database karena daftar dinamis. Taruhan terbaik Anda adalah menggunakan sp_msforeachdb dan mintalah kumpulan hasil dan kembalikan:

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;

Anda dapat memperluas ini untuk menyertakan peran server dan keanggotaan peran basis data setelah Anda mengetahui bentuk kumpulan hasil yang tepat untuk menggabungkan semua informasi itu dalam satu tabel.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batasan klausa IN di Sql Server

  2. Jangan tampilkan set pengembalian kosong

  3. Melewati beberapa baris data ke prosedur tersimpan

  4. Untuk menjalankan paket SSIS di luar Alat Data SQL Server, Anda harus menginstal Pindahkan File ke Arsip Layanan Integrasi atau lebih tinggi

  5. Tingkat Isolasi SQL Server:Seri