Ini sepertinya pertanyaan yang bodoh, tetapi meskipun saya telah melakukan beberapa penelitian, saya tidak dapat menemukan informasi mengenai hal ini saja (mungkin karena menggunakan terminologi yang salah).
Apakah mungkin untuk login beberapa login server (otentikasi server sql) ke pengguna database tunggal (yang memiliki izin yang ditetapkan dengan menjadi anggota peran database)?
Saya memiliki lusinan login sql (otentikasi server sql) yang perlu membaca satu pengaturan dari database pusat dan saya lebih suka memetakan semua login ini ke pengguna DB tunggal dalam database target daripada membuat pengguna DB sendiri untuk setiap login.
Jika ya, apa yang akan menjadi sintaks T-SQL yang benar?
sql-server
t-sql
permissions
leepfrog
sumber
sumber
ROLE
dan kemudian menambahkan pengguna ke peran. Dengan cara ini Anda hanya memberikan izin untuk peran tersebut. Ini akan membantu Anda mengelola keamanan dengan cara yang lebih baik. Juga, apa versi server sql - 2008R2, 2012?Jawaban:
Pertama untuk memastikan terminologi. Login adalah prinsip keamanan tingkat instance (
sys.server_principals
) dan Pengguna adalah prinsip keamanan tingkat database (sys.database_principals
). Mereka bergabung bersama oleh SID (pengidentifikasi keamanan). Jika Anda melihat tampilan sistem di atas, Anda dapat melihat bagaimana mereka digabungkan bersama dalam format 1: 1 oleh SID. Itu 1 Login ke 1 Pengguna dalam database. Login dapat memiliki beberapa Pengguna tetapi mereka harus di database yang berbeda.Jadi, Anda harus membuat Pengguna di basis data Anda untuk setiap Login yang ingin Anda akses. Ini perintah yang cukup sederhana.
Dari sana Anda dapat menempatkan semua pengguna Anda ke dalam Peran tunggal (atau banyak). Peran adalah wadah yang memiliki izin dan membagikan izin tersebut dengan setiap Pengguna (untuk peran basis data) atau Masuk (misalnya peran). Ada built in peran basis data yang disebut
db_datareader
yang memberikan akses baca ke setiap tabel dan tampilan dalam database. Anda bisa menambahkan semua pengguna Anda ke peran itu. Namun, ide yang lebih baik adalah menciptakan peran baru dan menambahkannya kedb_datareader
peran tersebut. Kemudian tambahkan semua pengguna Anda ke peran baru. Manfaatnya di sini adalah jika Anda ingin menambahkan izin tambahan ke grup, Anda dapat dengan hanya mengubah izin pada peran tersebut.Buat peran dengan:
Tambahkan pengguna ke peran (atau satu peran ke peran lain)
atau jika Anda berada di tahun 2012 atau lebih tinggi
sumber
That's 1 Login to 1 User in a database
.