Cách cấp quyền cho tất cả thông tin đăng nhập / người dùng / bảng / lược đồ


7

Trong những năm qua, tôi đã sử dụng vô số tập lệnh và ứng dụng để tạo tất cả các quyền cho cơ sở dữ liệu SQL Server. Tôi đã sử dụng cả công cụ trả phí và miễn phí. Tôi cảm thấy rằng không phải ai trong số họ dường như chính xác trong mọi trường hợp. Tôi chỉ đơn giản là tìm cách tạo ra tất cả các quyền cho một cơ sở dữ liệu nhất định cùng với sự tự tin rằng tập lệnh là chính xác và có thể được sử dụng sau khi sao lưu / khôi phục từ một phiên bản khác. Có ai có phương pháp mà họ tự tin và sử dụng thường xuyên không

Câu trả lời:


5

Tôi có một vài thủ tục được lưu trữ mà tôi đã viết và sử dụng một cách thường xuyên.

Họ đều có ba đầu ra.

  • Principals : Danh sách các hiệu trưởng cơ sở dữ liệu / máy chủ và thông tin liên quan bao gồm các tập lệnh tạo / thả.
  • Role membership : Danh sách vai trò của mỗi cơ sở dữ liệu / máy chủ chính thuộc về cùng với các tập lệnh thêm / thả.
  • Permissions : Danh sách các quyền riêng lẻ (EXECUTE, INSERT, UPDATE, CONNECT, v.v.) cho mỗi cơ sở dữ liệu / máy chủ chính.

Rõ ràng sp Srv dành cho hiệu trưởng Server và sp sp dành cho hiệu trưởng cấp cơ sở dữ liệu. Sp sp DB cũng có tùy chọn 'Tất cả' cho tên cơ sở dữ liệu. Với tùy chọn này, nó chạy qua và lấy tất cả các quyền cho tất cả các cơ sở dữ liệu.

Lưu ý: Điều này ban đầu được dự định là một công cụ nghiên cứu vì vậy có một số lượng tùy chọn hợp lý sẽ cho phép bạn phân tích dữ liệu của mình. Chỉ vai trò, mọi thứ trừ vai trò, chỉ là một tên hiệu trưởng cụ thể, v.v.


1
Cặp đôi tuyệt vời của kịch bản! Tôi cũng sử dụng chúng rất nhiều, cặp sp rất tiện dụng. Và đã có thể chuyển mật khẩu và SID, hãy đồng ý cho bạn Kenneth
Yaroslav

1
Kịch bản hay đấy! sp_DBPermissions dường như trả về mọi thứ tôi cần ngoại trừ "XEM ĐỊNH NGH DEA" được cấp cho người dùng trên cơ sở dữ liệu. Không có hồ sơ được trả lại cho những người.
Một số

Lạ Điều đó sẽ hiển thị. Tôi sẽ a) xác nhận rằng trong cơ sở dữ liệu, họ được cấp rõ ràng XEM XÁC ĐỊNH (không thông qua vai trò, nhóm AD, v.v.) và sau đó kiểm tra lại các chế độ xem hệ thống. sys.database_permissions đã tham gia vào sys.database_principals. Nếu nó không nằm trong những khung nhìn đó thì nó sẽ không xuất hiện trong SP.
Kenneth Fisher

2

sp_help_revlogin

Xem: Cách chuyển thông tin đăng nhập và mật khẩu giữa các phiên bản của SQL Server trên MSDN

Làm việc hợp lý tốt cho tôi vào mùa hè vừa qua.


sp_help_Vvlogin chỉ chuyển thông tin chính của máy chủ. Nó không chuyển bất cứ thứ gì ở cấp độ cơ sở dữ liệu. Rất hữu ích cho những gì nó làm mặc dù.
Kenneth Fisher

nếu bạn di chuyển / di chuyển đến một máy chủ mới, bạn không cần phải tạo kịch bản cho mỗi quyền db. Họ sẽ đi cùng với db di chuyển.
Michael P

Rất đúng. Trừ khi bạn tình cờ di chuyển giữa các cấp SDLC. Nói rằng sao chép qua dev với thử nghiệm nhưng sau đó bạn muốn đặt các quyền dev trở lại như cũ.
Kenneth Fisher

@KennethFisher bạn thường có vai trò cho điều đó.
spaghettidba

@spaghettidba Đừng cho phép thay đổi vai trò giữa dev & test? Hoặc prod & kiểm tra? Hoặc ít nhất là các thành viên? Thật tiện lợi khi loại điều đó được viết thành kịch bản.
Kenneth Fisher
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.