SQL Server 2008: Làm cách nào để cấp đặc quyền cho tên người dùng?


102

Tôi cần có thể thiết lập kết nối ODBC thông qua xác thực SQL Server.

Trong SSMS, làm cách nào để cấp quyền cho người dùng có thể CÓ TẤT CẢ CÁC QUYỀN trên một cơ sở dữ liệu cụ thể?

có cách nào để thực hiện điều này bằng đồ thị với SSMS không?

Câu trả lời:


139

Nếu bạn muốn cấp cho người dùng của mình tất cả các quyền đọc, bạn có thể sử dụng:

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

Điều đó thêm db_datareadervai trò mặc định (quyền đọc trên tất cả các bảng) cho người dùng đó.

Ngoài ra còn có một db_datawritervai trò - cung cấp cho người dùng của bạn tất cả các quyền WRITE (CHÈN, CẬP NHẬT, XÓA) trên tất cả các bảng:

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

Nếu bạn cần chi tiết hơn, bạn có thể sử dụng GRANTlệnh:

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

và v.v. - bạn có thể cấp cho quyền SELECT, INSERT, UPDATE, DELETE một cách chi tiết trên các bảng cụ thể.

Tất cả điều này đều được ghi lại rất đầy đủ trong MSDN Books Online for SQL Server .

Và có, bạn cũng có thể làm điều đó bằng đồ thị - trong SSMS, truy cập cơ sở dữ liệu của bạn, sau đó Security > Users, nhấp chuột phải vào người dùng mà bạn muốn cấp quyền, sau đó Propertiesở dưới cùng, bạn thấy "Tư cách thành viên vai trò cơ sở dữ liệu" nơi bạn có thể thêm vai trò người dùng đến db.

văn bản thay thế


bằng cách nào đó, tôi không có nút Người dùng trong cây Bảo mật trong SSMS, chỉ có Thông tin đăng nhập & Thông tin đăng nhập - ngoài điều này, để sp_addrolemember hoạt động, người dùng phải được ánh xạ tới cơ sở dữ liệu được đề cập, nếu không "người dùng ... thì không tồn tại trong cơ sở dữ liệu" lỗi được đưa ra ( stackoverflow.com/questions/7232559/... - xem bình luận cho câu trả lời được chấp nhận) - i có thể để lập bản đồ sử dụng db qua Properties của người dùng đăng nhập đối tượng
hello_earth

@marc_s, Làm cách nào để cấp quyền liên quan đến một bảng cụ thể bằng SSMS?
CAD


61

Nếu bạn thực sự muốn họ có TẤT CẢ các quyền:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go

18

Như sau. Nó sẽ làm cho chủ sở hữu cơ sở dữ liệu người dùng.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
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.