Ho un requisito in SQL Server 2008 nel database di sviluppoCreate Procedure permesso SOLO
- Solo di DBA (che sono proprietari di database) in grado di creare, modificare tabelle. Gli sviluppatori non dovrebbero creare o modificare tabelle.
- Gli sviluppatori possono creare/modificare le stored procedure/funzioni definite dall'utente nello schema dbo e possono eseguire SP/UDF.
- Gli sviluppatori dovrebbero avere SELECT, INSERT, DELETE, UPDATE sulle tabelle ( tabelle in schema dbo
Come raggiungere questo GRANT utilizzando
trovato una soluzione del campione da parte di Google, ma ancora avere problema
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
La sintassi di cui sopra in grado di bloccare sviluppatore di creare tavolo, ma non posso blocco sviluppatori di utilizzare SSMS d Esegui e modifica la tabella.
Grazie.
prima di tutto hai gruppi separati per dba e sviluppatori? – hgulyan
Se inserisci codice o XML, ** per favore ** evidenzia queste righe nell'editor di testo e fai clic sul pulsante "codice" (101 010) sulla barra degli strumenti dell'editor per formattarlo in modo appropriato e evidenziare la sintassi! –
hgulyan: sì, ho avuto diversi gruppi di utenti per dba e sviluppatori – mengchew0113