Ich habe eine Verpflichtung in SQL Server 2008 in der Entwicklung DatenbankCreate Procedure Permission NUR
- Nur der DBA (die Datenbank Besitzer sind) erstellen können, ändern Tabellen. Entwickler sollten keine Tabellen erstellen oder ändern.
- Entwickler können Stored Procedure/User Defined Funktionen in Dbo-Schema erstellen/ändern und SP/UDF ausführen.
- Entwickler sollten SELECT, INSERT, DELETE, UPDATE für Tabellen ( Tabellen in dbo Schema
Wie dies mit GRANT-Anweisung
Gefunden eine Probenlösung von Google, zu erreichen, aber immer noch haben Problem
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
Die obige Syntax in der Lage, Entwickler zu blockieren, um Tabelle zu erstellen, kann aber Entwickler nicht blockieren, um SSMS d zu verwenden Setzen und ändern Sie den Tisch.
Danke.
vor allem haben Sie getrennte Gruppen für dba's und Entwickler? – hgulyan
Wenn Sie Code oder XML schreiben, ** bitte ** markieren Sie diese Zeilen im Texteditor und klicken Sie auf die Schaltfläche "Code" (101 010) auf der Editor-Symbolleiste, um sie schön formatieren und Syntax hervorheben! –
hgulyan: ja, ich hatte andere Benutzergruppe für dba & Entwickler – mengchew0113