Cara menambahkan grup pengguna Active Directory sebagai login di SQL Server

108

Saya memiliki aplikasi .net yang terhubung ke SQL Server menggunakan otentikasi windows.

Kami tidak dapat menggunakan otentikasi SQL Server dalam aplikasi. Kami memiliki banyak pengguna Active Directory di sana untuk proyek kami. Jadi kita harus membuat akun login terpisah untuk setiap pengguna Active Directory di SQL Server daripada membuat akun login terpisah untuk setiap pengguna AD, adakah cara untuk menggunakan grup pengguna direktori aktif di SQL Server?

Jibu P C_Adoor
sumber

Jawaban:

162

Di SQL Server Management Studio, buka Object Explorer > (your server) > Security > Loginsdan klik kanan New Login:

masukkan deskripsi gambar di sini

Kemudian di kotak dialog yang muncul, pilih jenis objek yang ingin Anda lihat ( Groupsdinonaktifkan secara default - centang!) Dan pilih lokasi tempat Anda ingin mencari objek (mis. Gunakan Entire Directory) dan kemudian temukan grup AD Anda .

masukkan deskripsi gambar di sini

Anda sekarang memiliki Login SQL Server biasa - sama seperti saat Anda membuatnya untuk satu pengguna AD. Berikan login baru itu izin pada database yang dibutuhkannya, dan pergilah!

Setiap anggota grup AD tersebut sekarang dapat login ke SQL Server dan menggunakan database Anda.

marc_s
sumber
Apakah ada kesempatan untuk membuat grup di mysql seperti di atas?
uzay95
2
Terima kasih atas jawaban yang sangat jelas dengan tangkapan layar beranotasi! Saya berharap semua jawaban seperti ini ...
NickG
1
@NickG: Saya menggunakan Paint.NET gratis untuk memuat gambar dan menyisipkan persegi panjang merah bulat
marc_s
7
Ini tidak berhasil untuk saya. Saya memiliki Grup Windows "DataAccess", di mana "UserX" adalah anggotanya. Saya membuat login untuk grup DataAccess dan mengatur pemetaan pengguna login untuk memiliki akses publik, datareader, dan penulis data pada database. Pengguna tidak dapat masuk. Jika saya menambahkan pengguna secara spesifik, dan memberikan izin pemetaan yang sama persis, maka dia dapat masuk. Saat saya mengklik Securables> Izin Efektif untuk grup, dikatakan "Tidak dapat mengeksekusi sebagai prinsipal server karena 'GroupName' kepala sekolah tidak keluar, jenis prinsipal ini tidak dapat ditiru, atau Anda tidak memiliki izin. "
Triynko
1
@ Tim: nama pengguna - masih pengguna yang masuk - dia tidak diizinkan secara langsung - sebagai pengguna - tetapi dengan menjadi anggota grup yang memiliki izin
marc_s
21

Anda dapat menggunakan T-SQL:

use master
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName

Saya menggunakan ini sebagai bagian dari pemulihan dari server produksi ke mesin pengujian:

USE master
GO
ALTER DATABASE yourDbName SET OFFLINE WITH ROLLBACK IMMEDIATE
RESTORE DATABASE yourDbName FROM DISK = 'd:\DropBox\backup\myDB.bak'
ALTER DATABASE yourDbName SET ONLINE
GO
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH
DEFAULT_DATABASE=yourDbName
GO

Anda akan perlu menggunakan nama layanan yang dilokalkan untuk Windows Jerman atau Prancis, lihat Bagaimana cara membuat login SQL Server untuk akun layanan di Windows non-Inggris?

Tomas Kubes
sumber
Jika Anda juga perlu mengatur login / principal level database, inilah jawaban lain yang menurut saya berguna dba.stackexchange.com/a/2578/60876
Agostino
Saya ingin tahu apakah ini dapat digunakan untuk memberikan akses baca grup direktori aktif tertentu ke skema tertentu - dalam pseudo sql CREATE LOGIN ... WITH DEFAULT_SCHEMA, titik-titik ... harus merujuk ke grup iklan tertentu. Kami memiliki beberapa grup dan ingin memberikan accountantsakses grup direktori aktif ke skema ´A´ tetapi tidak ke skema ´B´ dan ´C´. Demikian pula grup ´billing` seharusnya hanya memiliki akses ke skema ´B´. Sebagai frontend kami menggunakan akses msft.
surfmuggle
0

Pergi ke SQL Server Management Studio, arahkan ke Keamanan, masuk ke Masuk dan klik kanan. Menu akan muncul dengan tombol bertuliskan "Login Baru". Di sana Anda akan dapat menambahkan pengguna dan / atau grup dari Active Directory ke "izin" SQL Server Anda. Semoga ini membantu


sumber
0

Inilah pengamatan saya. Saya membuat login (hanya baca) untuk akun pengguna jendela grup (AD) tetapi, itu bertindak menantang di server SQL yang berbeda. Di server SQl bahwa pengguna tidak dapat melihat database saya menambahkan definisi tampilan diperiksa dan juga memberikan permeasi eksekusi database ke database master untuk menghindari kesalahan 229. Saya tidak memiliki masalah ini jika saya membuat login untuk pengguna.

BDEZ
sumber
Itu bisa saja dikomentari daripada menggunakan jawaban. Tapi Anda belum bisa berkomentar. Jadi jangan haha ​​^^
finnmglas