我在开发数据库创建过程准许只
- 只有DBA的(谁是数据库所有者)可以创建,修改表中的SQL Server 2008的要求。 开发人员不应该创建或更改表格。
- 开发人员可以在dbo模式下创建/更改存储过程/用户定义函数 ,并且可以执行SP/UDF。
- 开发人员应该有SELECT,INSERT,DELETE,在表上UPDATE(在dbo架构 表
如何实现这一点使用GRANT语句
发现从谷歌的样品溶液,但仍有问题
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
上面的语法能够阻止开发人员创建表,但不能阻止开发人员使用SSMS d设计并修改表格。
谢谢。
首先,你们是否为dba和开发者分离了组? – hgulyan 2010-06-28 09:30:42
如果您发布代码或XML,**请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码”按钮(101 010),以更好地格式化和语法突出显示它! – 2010-06-28 09:58:33
hgulyan:是的,我的dba和开发人员拥有不同的用户组 – mengchew0113 2010-06-28 10:36:47