Azure SQL Database новый созданный пользователь со схемой dbo, но не может искать таблицы в схеме dbo
В Мастер БД:
CREATE LOGIN Test_Admin
WITH PASSWORD = 'xxxx';
GO
CREATE USER Test_Admin
FOR LOGIN Test_Admin
WITH DEFAULT_SCHEMA = [guest]; --want to grant minimum access rights
GO
В целевой БД:
CREATE USER Test_Admin
FOR LOGIN Test_Admin
WITH DEFAULT_SCHEMA = [dbo];
GO
Однако я не смог найти существующие таблицы dbo по SQL ниже:
SELECT * FROM INFORMATION_SCHEMA.TABLES
Почему и как я могу посмотреть назад таблицы dbo?
1 ответ
Решение
Вы создаете пользователя в главной БД и хотите, чтобы пользователь Test_Admin мог получить доступ к целевой БД, я прав?
Если вы хотите сделать это, вам нужно дать пользователям базы данных права "db_owner", присоединившись к роли базы данных.
Вы можете изменить свой код следующим образом:
В Мастер БД:
CREATE LOGIN Test_Admin
WITH PASSWORD = 'xxxx';
GO
CREATE USER Test_Admin
FOR LOGIN Test_Admin
WITH DEFAULT_SCHEMA = [guest]; --want to grant minimum access rights
GO
EXEC sp_addrolemember 'db_owner', 'Test_Admin'
В целевой БД:
CREATE USER Test_Admin
FOR LOGIN Test_Admin
WITH DEFAULT_SCHEMA = [dbo];
GO
EXEC sp_addrolemember 'db_owner', 'Test_Admin'
GO
Надеюсь это поможет.