sql-server 授予用户CREATE/ALTER权限

beq87vna  于 2022-10-31  发布在  其他
关注(0)|答案(2)|浏览(198)

我怎样才能只授予数据库的特定用户(开发人员)对Procedures/FunctionsCREATE/ALTER权限。我不想允许他们访问Create/Alter/Drop表或任何其他功能。这可能吗?

bvuwiixz

bvuwiixz1#

尝试这个解决方案从msql服务器管理工作室

打开数据库安全
然后

v64noz0r

v64noz0r2#

你试试下面路
创建角色

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 role创建表并删除

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

相关问题