Question:
You need to remotely create a login / password for another user and give access to the database. As a result, I got something like this:
CREATE LOGIN somelogin WITH PASSWORD = 'passssssss';
USE SOMEDB;
CREATE USER someuser FOR LOGIN somelogin WITH DEFAULT_SCHEMA = dbo;
GRANT CONTROL TO someuser;
But some of them need to be given access to create other users.
How can such users be given such access?
Or maybe it is possible to create two users with the necessary settings, and bind several logins to them?
Answer:
To create logins, you need to be a member of the special securityadmin
role of the server:
EXEC [master]..sp_addsrvrolemember @loginame = N'LoginName', @rolename = N'securityadmin'
GO
In SqlServer 2012 onwards, you can also:
ALTER SERVER ROLE [securityadmin] ADD MEMBER [LoginName]
GO
To create database users, you need to be a member of the special role db_securityadmin
database:
USE [Database]
GO
EXEC sp_addrolemember @rolename = N'db_securityadmin', @membername = N'MemberName'
GO
In SqlServer 2012 onwards, you can:
USE [Database]
GO
ALTER ROLE [db_securityadmin] ADD MEMBER [MemberName]
GO