Tôi có một yêu cầu trong SQL Server 2008 trong cơ sở dữ liệu phát triểnTạo Thủ tục Permission CHỈ
- Chỉ DBA (là chủ sở hữu cơ sở dữ liệu) có thể tạo, thay đổi bảng. Nhà phát triển không được tạo hoặc thay đổi bảng.
- Nhà phát triển có thể tạo/thay đổi Thủ tục được lưu trữ/Người dùng xác định chức năng trong lược đồ dbo và có thể thực thi SP/UDF.
- phát triển nên có SELECT, INSERT, DELETE, UPDATE trên bảng ( bảng trong schema dbo
Làm thế nào để đạt được điều này sử dụng lệnh GRANT
Tìm thấy một giải pháp mẫu từ Google, nhưng vẫn có vấn đề
CREATE LOGIN testdev WITH PASSWORD = 'sldkjlkjlkj 987kj//'
CREATE USER testdev
GRANT ALTER ON SCHEMA::dbo TO testdev
GRANT CREATE PROCEDURE TO testdev
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO testdev
CREATE TABLE mysig (a int NOT NULL)
EXECUTE AS USER = 'testdev'
go
CREATE PROCEDURE slaskis AS PRINT 12
go
CREATE TABLE hoppsan(a int NOT NULL) -- FAILS!
go
INSERT mysig (a) VALUES(123)
go
REVERT
go
DROP PROCEDURE slaskis
DROP TABLE mysig
DROP USER testdev
DROP LOGIN testdev
Cú pháp trên có thể chặn nhà phát triển tạo bảng nhưng nhà phát triển khối không thể sử dụng SSMS d esign và thay đổi bảng.
Cảm ơn.
trước hết bạn có các nhóm riêng biệt cho dba và nhà phát triển không? – hgulyan
Nếu bạn đăng mã hoặc XML, ** vui lòng ** làm nổi bật các dòng đó trong trình soạn thảo văn bản và nhấp vào nút "mã" (101 010) trên thanh công cụ của trình chỉnh sửa để định dạng và cú pháp tô sáng nó! –
hgulyan: có, tôi đã có nhóm người dùng khác nhau cho dba & developers – mengchew0113