Как создать нового пользователя базы данных с ограниченными правами для Azure SQL - PullRequest
0 голосов
/ 20 мая 2019

Как использовать операторы SQL для настройки ниже для случаев 1 и 2?

Случай 1: В управляемом экземпляре Azure SQL имеется несколько баз данных DB1, DB2, DB3, ... Как создать нового пользователя базы данных User1, который может получить доступ только к DB1 и скрыть другие базы данных от этого пользователя (т. Е. Когда User1 открывает сервер базы данных в SQL Server Management Studio, ему показывается только DB1) В то же время, User1 должен обладать привилегиями для выполнения следующих действий с DB1:

  1. Создание таблиц
  2. Добавить столбцы
  3. CRUD доступ к таблицам

Случай 2: Если несколько баз данных DB1, DB2, DB3, ... являются отдельными базами данных (не в управляемом экземпляре) Как выполнить конфигурацию, аналогичную описанной в случае 1, то есть пользователь 1 может видеть только DB1 с вышеуказанными привилегиями?

Я попробовал решение вопроса ниже: Как создать нового пользователя в базе данных SQL Azure?

CREATE LOGIN User1 WITH password='Test1234';
CREATE USER User1 FROM LOGIN User1;

Но тогда Пользователь1 может видеть все базы данных.

+++++++++++++++++++++++++++++++

1-е обновление:

Основываясь на ссылках @Nick.McDermaid (большое спасибо), я попробовал следующие операторы SQL, и они работают:

--the below statement grant user1 access to the database, it's working:
CREATE USER user1 WITH PASSWORD = 'Test1234';

--the below 4 statements grant user1 CRUD privilege on all tables, it's working:
GRANT SELECT TO user1;
GRANT INSERT TO user1;
GRANT UPDATE TO user1;
GRANT DELETE TO user1;

Но есть проблема с предоставлением создать таблицу и добавить столбец:

--intend to grant user1 creating table privilege, commands completed successfully, but when trying to create a table return below error:
--Microsoft SQL: The specified schema name "dbo" either does not exist or you do not have permission to use it.
GRANT CREATE TABLE TO user1;

--intend to grant user1 adding columns privilege, but Azure SQL return below error:
--Incorrect syntax near 'ALTER'.
GRANT ALTER TABLE TO user1;

+++++++++++++++++++++++++++++++

2-е обновление:

Мои последние операторы SQL:

CREATE USER [user1] WITH PASSWORD=N'Test1234'
GO

CREATE ROLE [test_role]
GO

ALTER ROLE [test_role] ADD MEMBER [user1];
GO

ALTER ROLE [db_ddladmin] ADD MEMBER [test_role];
GO
ALTER ROLE [db_datawriter] ADD MEMBER [test_role];
GO
ALTER ROLE [db_datareader] ADD MEMBER [test_role];
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...