向用户授予CREATE / ALTER权限

时间:2018-08-27 10:40:52

标签: sql-server

如何仅向数据库的特定用户(开发人员)授予CREATE/ALTER的{​​{1}}权限。我不想允许他们使用Procedures/Functions表或任何其他功能。 这可能吗?

2 个答案:

答案 0 :(得分:0)

尝试此解决方案 从msql服务器管理工​​作室打开数据库安全性 enter image description here

然后

enter image description here

答案 1 :(得分:0)

您尝试以下方式

创建角色

    CREATE ROLE [user_dev] AUTHORIZATION db_securityadmin;
    GO



    GRANT CREATE PROCEDURE TO [user_dev];
    GRANT SELECT, INSERT, UPDATE, DELETE, ALTER, EXECUTE, VIEW DEFINITION ON SCHEMA::dbo TO [user_dev]

创建用户并登录以进行测试,然后添加到user_dev角色

    CREATE LOGIN test WITH PASSWORD = 'dfgdfg' 
    CREATE USER test 
    EXEC sp_addrolemember @rolename = 'user_dev', @membername = 'test';
    GO

然后创建触发器以限制user_dev角色创建表和删除

    CREATE TRIGGER tr_db_DenyDropAlterTable
    ON DATABASE 
    FOR DROP_TABLE, ALTER_TABLE 
    AS 
    BEGIN 
       IF IS_MEMBER('user_dev') = 1 
       BEGIN 
           PRINT 'Not allowed'; 
           ROLLBACK TRAN; 
       END; 
    END; 
    GO