Я новичок в SQL DW, но имею некоторый опыт работы с БД
Я пытаюсь создать пользователей (3) с разными правами, но хочу ограничить их одной схемой «dep». так что я сделал следующее.
1) войдите в БД с идентификатором суперадминистратора. затем выполнил следующие команды. все они работали нормально
enter code here---main db
CREATE LOGIN dep_ingestion_owner_login WITH PASSWORD = 'XXXXXXXXXXXXXXX';
CREATE LOGIN dep_ingestion_rw_login WITH PASSWORD = 'XXXXXXXXXXXXXXX';
CREATE LOGIN dep_ingestion_ro_login WITH PASSWORD = 'XXXXXXXXXXXXXXX';
go
---inside db "db-testing"
CREATE SCHEMA dep;
create user dep_ingestion_owner_user for login dep_ingestion_owner_login;
create user dep_ingestion_rw_user for login dep_ingestion_rw_login;
create user dep_ingestion_ro_user for login dep_ingestion_ro_login;
ALTER AUTHORIZATION ON SCHEMA::dep to dep_ingestion_owner_user;
go
GRANT SELECT,INSERT,UPDATE,DELETE ON SCHEMA :: dep TO dep_ingestion_rw_user WITH GRANT OPTION;
GRANT SELECT ON SCHEMA :: dep TO dep_ingestion_ro_user WITH GRANT OPTION;
go
Я могу видеть имя схемы и пользователей через SSMS.
Теперь я пытаюсь войти в систему с идентификатором пользователя "dep_ingestion_owner_login" и выбрал db as => db-testing
логин работает отлично. но следующая команда выдает ошибку.
CREATE TABLE depletions_ke.Sizes (ChainID int, width dec(10,2));
Я тоже пробовал разные перестановки, но получал ту же ошибку.
CREATE TABLE [db-testing].depletions_ke.Sizes (ChainID int, width dec(10,2));
Сообщение 6004, уровень 14, состояние 9, строка 1 Пользователь не имеет разрешения на выполнение этого действия. Изменен контекст базы данных на db-testing.