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

Azure SQL Database new created user with dbo schema but cannot search the tables under dbo schema

在主数据库中:

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 的表?

您在主数据库中创建了一个用户,并且您希望用户 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

希望对您有所帮助。