代码之家  ›  专栏  ›  技术社区  ›  Doonie Darkoo

向用户授予创建/更改权限

  •  0
  • Doonie Darkoo  · 技术社区  · 6 年前

    我怎么能只批准 CREATE/ALTER Procedures/Functions 仅限于数据库的特定用户(开发人员)。我不想让他们这么做 Create/Alter/Drop 表或任何其他功能。 这可能吗?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Youssri Abo Elseod    6 年前

    试试这个解决方案 从msql server management studio打开数据库安全性 enter image description here

    enter image description here

        2
  •  0
  •   Zaynul Abadin Tuhin    6 年前

    创建角色

        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]
    

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

    然后创建一个触发器来限制用户_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