Azure SQL数据库新创建的用户具有dbo架构但无法在dbo架构下搜索表

问题描述 投票:0回答:1

在Master DB中:

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

但是,我无法通过SQL下面搜索dbo的现有表:

SELECT * FROM INFORMATION_SCHEMA.TABLES

为什么以及如何看到dbo的表?

select azure-sql-database schema ssms dbo
1个回答
1
投票

您在主数据库中创建用户,并且您希望用户Test_Admin可以访问目标数据库,对吗?

如果要执行此操作,则需要通过加入数据库角色为数据库用户授予“db_owner”权限。

您可以像这样修改代码并重试:

在Master DB中:

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

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.