Di SQL Server, Anda dapat memiliki akun berdasarkan akun Windows, atau akun SQL tertentu yang terpisah. Untuk kedua variasi, Anda memerlukan satu akun untuk setiap pengguna yang perlu menggunakan database Anda.
Satu-satunya pengecualian adalah kemampuan untuk membuat Login SQL Server untuk grup keamanan Windows , misalnya MyAppUsers
, lalu pengguna di database Anda untuk login tersebut. Dengan ini, semua akun Windows yang menjadi anggota grup keamanan tersebut (di Windows/AD) juga akan memiliki izin untuk melihat/menggunakan database Anda.
Dengan pendekatan ini, Anda juga memindahkan administrasi siapa yang dapat menggunakan database Anda dari SQL Server, karena hal itu hanya bergantung pada keanggotaan dalam grup keamanan Windows.
Satu login, satu pengguna - beberapa akun Windows yang mendapatkan izin dengan ini. Sepertinya pemenang bagi saya!
Pembaruan:
Buat login untuk grup Windows AD:
CREATE LOGIN [DOMAIN\GroupName] FROM WINDOWS
Buat pengguna di database Anda berdasarkan login itu:
USE (your database)
CREATE USER GroupNameUser
FOR LOGIN [DOMAIN\GroupName]
String koneksi untuk koneksi SQL Server Anda:
server=(your server);database=(your database);integrated security=SSPI;
Apa lagi yang bisa saya katakan?
Pembaruan #2: kode tidak menggunakan akun Windows adalah ini:
Buat info masuk untuk setiap pengguna yang perlu menggunakan aplikasi Anda
CREATE LOGIN (some login name) WITH PASSWORD = 'Top$ecret'
Buat pengguna di database Anda berdasarkan info masuk itu - sekali lagi, sekali untuk setiap pengguna aplikasi Anda:
USE (your database)
CREATE USER UserName
FOR LOGIN (some login name)
String koneksi untuk koneksi SQL Server Anda:
server=(your server);database=(your database);
user id=UserName;Password=Top$ecret
Tetapi sekali lagi:ini membutuhkan satu login termasuk kata sandi dan satu pengguna di setiap database yang perlu Anda lacak dan mungkin melakukan hal-hal seperti operasi "reset kata sandi" dll. dari aplikasi database Anda. Lebih banyak lagi dalam hal biaya admin!