SQL Server giving logins(users) db_owner access to database

后端 未结 4 977
后悔当初
后悔当初 2021-02-01 13:57

We have a test database and some test logins that we would like to give db_owner access to through a script. Usually we would have to go into logins and right click on the usern

相关标签:
4条回答
  • 2021-02-01 14:21

    Here is how to use ALTER ROLE with an existing server login named MyLogin.

    USE MyDatabase
    CREATE USER MyLogin FOR LOGIN MyLogin
    ALTER ROLE db_owner ADD MEMBER MyLogin
    GO
    

    https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql

    0 讨论(0)
  • 2021-02-01 14:36

    You need to do two things, both running in the context of the target database (i.e., execute USE (database) first):

    1. Add that user as a login to the database: CREATE USER [LoginName] FOR LOGIN [LoginName]
    2. Add that user to the role: EXEC sp_addrolemember N'db_owner', N'LoginName'

    In general, if you have SQL Server Management Studio 2005 or higher, you can go into the UI for an operation, fill out the dialog box (in this case, assigning the user to the database & adding roles), and then click the "Script" button at the top. Instead of executing the command, it will write a script for the action to a new query window.

    0 讨论(0)
  • 2021-02-01 14:38

    Use sp_addrolemember

    EXEC sp_addrolemember 'db_owner', 'MyUser'

    0 讨论(0)
  • 2021-02-01 14:41

    I'd like to propose another solution which may help someone...

    -- create the user on the master database
    USE [master] 
    GO
    CREATE LOGIN [MyUserName] WITH PASSWORD=N'MyPassword'
    CREATE USER [MyUserName] FOR LOGIN [MyUserName]
    GO
    
    -- create the user on the target database for the login
    USE [MyDatabaseName]
    GO
    CREATE USER [MyUserName] FOR LOGIN [MyUserName]
    GO
    
    -- add the user to the desired role
    USE [MyDatabaseName]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [MyUserName]
    GO
    
    0 讨论(0)
提交回复
热议问题