Cách thêm nhóm người dùng Active Directory làm đăng nhập trong SQL Server


108

Tôi có một ứng dụng .net đang kết nối với SQL Server bằng cách sử dụng xác thực cửa sổ.

Chúng tôi không thể sử dụng xác thực SQL Server trong ứng dụng. Chúng tôi có rất nhiều người dùng Active Directory ở đó cho dự án của chúng tôi. Vì vậy chúng ta phải tạo tài khoản đăng nhập riêng cho từng người dùng Active Directory trong SQL Server chứ không phải tạo tài khoản đăng nhập riêng cho từng người dùng AD, có cách nào để sử dụng nhóm người dùng thư mục hoạt động trong SQL Server không?

Câu trả lời:


162

Trong SQL Server Management Studio, hãy truy cập Object Explorer > (your server) > Security > Loginsvà nhấp chuột phải vào New Login:

nhập mô tả hình ảnh ở đây

Sau đó, trong hộp thoại bật lên, chọn loại đối tượng bạn muốn xem ( Groupsbị tắt theo mặc định - hãy kiểm tra nó!) Và chọn vị trí bạn muốn tìm đối tượng của mình (ví dụ: sử dụng Entire Directory) rồi tìm nhóm QUẢNG CÁO của bạn .

nhập mô tả hình ảnh ở đây

Bây giờ bạn có Đăng nhập máy chủ SQL thông thường - giống như khi bạn tạo một Đăng nhập cho một người dùng AD. Cung cấp cho thông tin đăng nhập mới đó các quyền trên cơ sở dữ liệu mà nó cần, và bạn bắt đầu!

Bất kỳ thành viên nào của nhóm AD đó hiện có thể đăng nhập vào SQL Server và sử dụng cơ sở dữ liệu của bạn.


Có cơ hội nào để tạo nhóm trong mysql như trên không?
uzay95

2
Cảm ơn bạn đã trả lời rất rõ ràng với ảnh chụp màn hình có chú thích! Tôi ước tất cả các câu trả lời đều như thế này ...
NickG

1
@NickG: Tôi đã sử dụng Paint.NET miễn phí để tải hình ảnh và chèn các hình chữ nhật tròn màu đỏ
marc_s

7
Điều này không hiệu quả với tôi. Tôi có Nhóm Windows "DataAccess", mà "UserX" là thành viên. Tôi đã tạo thông tin đăng nhập cho nhóm DataAccess và đặt ánh xạ người dùng của thông tin đăng nhập có quyền truy cập công khai, trình ghi dữ liệu và trình ghi dữ liệu trên cơ sở dữ liệu. Người dùng không thể đăng nhập. Nếu tôi thêm người dùng cụ thể và chỉ định chính xác quyền ánh xạ, thì anh ta có thể đăng nhập. Khi tôi nhấp vào Bảo mật> Quyền hiệu quả cho nhóm, nó cho biết "Không thể thực thi với tư cách là máy chủ chính bởi vì 'GroupName' chính không thoát ra, loại hiệu trưởng này không thể bị mạo danh, hoặc bạn không được phép. "
Triynko

1
@Tim: tên của người dùng - vẫn là người dùng đăng nhập - anh ấy không được cấp quyền trực tiếp - với tư cách là người dùng - mà là thành viên của nhóm có quyền đó
marc_s

21

Bạn có thể sử dụng 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

Tôi sử dụng điều này như một phần của quá trình khôi phục từ máy chủ sản xuất đến máy thử nghiệm:

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

Bạn sẽ cần sử dụng tên dịch vụ được bản địa hóa trong trường hợp Windows tiếng Đức hoặc tiếng Pháp, hãy xem Cách tạo thông tin đăng nhập SQL Server cho tài khoản dịch vụ trên Windows không phải tiếng Anh?


Trong trường hợp bạn cũng cần phải thiết lập mức độ cơ sở dữ liệu đăng nhập / gốc, đây là câu trả lời khác tôi thấy hữu ích dba.stackexchange.com/a/2578/60876
Agostino

Tôi tự hỏi liệu điều này có thể được sử dụng để cấp cho một nhóm thư mục hoạt động nhất định quyền truy cập đọc vào một lược đồ nhất định hay không - trong sql giả, CREATE LOGIN ... WITH DEFAULT_SCHEMAcác dấu chấm ... phải tham chiếu đến một nhóm quảng cáo nhất định. Chúng tôi có một số nhóm và muốn cấp cho một nhóm thư mục đang hoạt động accountantsquyền truy cập vào lược đồ ´A´ nhưng không vào lược đồ ´B´ và ´C´. Tương tự, nhóm ´billing` chỉ nên có quyền truy cập vào lược đồ ´B´. Là một giao diện người dùng, chúng tôi đang sử dụng quyền truy cập msft.
lướt sóng

0

Đi tới SQL Server Management Studio, điều hướng đến Bảo mật, chuyển đến Đăng nhập và nhấp chuột phải vào nó. Menu sẽ xuất hiện với nút "Đăng nhập mới". Ở đó bạn sẽ có thể thêm người dùng và / hoặc nhóm từ Active Directory vào "quyền" SQL Server của bạn. Hi vọng điêu nay co ich


0

Đây là quan sát của tôi. Tôi đã tạo thông tin đăng nhập (chỉ đọc) cho tài khoản người dùng cửa sổ nhóm (AD) nhưng tài khoản này hoạt động ngang ngược trong các máy chủ SQL khác nhau. Trong các máy chủ SQl mà người dùng không thể nhìn thấy cơ sở dữ liệu mà tôi đã thêm định nghĩa chế độ xem đã kiểm tra và cũng cho phép cơ sở dữ liệu thực thi thấm vào cơ sở dữ liệu chính để tránh lỗi 229. Tôi không gặp sự cố này nếu tôi tạo thông tin đăng nhập cho người dùng.


Điều đó có thể được bình luận hơn là sử dụng một câu trả lời. Nhưng bạn chưa thể bình luận. Vì vậy, đừng haha ​​^^
finnmglas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.