Я использовал следующий SQL для создания пользователя, логина и базы данных.
USE master;
GO
CREATE DATABASE TEST;
GO
USE TEST;
GO
CREATE LOGIN TEST_USER WITH PASSWORD = 'password';
EXEC sp_defaultdb @loginame='TEST_USER', @defdb='TEST'
CREATE USER TEST_USER FOR LOGIN TEST_USER WITH DEFAULT_SCHEMA = DBO;
EXEC sp_addrolemember 'db_owner','TEST_USER'
GO
GRANT ALL TO TEST_USER;
GRANT ALTER ON SCHEMA::dbo TO TEST_USER
GO
Когда меня спросили, я не смог объяснить разницу между тем, чтобы сделать моего пользователя владельцем базы данных (для создания / изменения / удаления таблиц и т. Д.):
EXEC sp_addrolemember 'db_owner','TEST_USER'
и предоставление всего пользователю, который, как я думал, дает по существу те же привилегии.
GRANT ALL TO TEST_USER;
Они одинаковые? Или это правда, что моя мама всегда говорила: вы можете привести лошадь к воде, но это не делает его администратором?
Rob
:)