0

在主数据库中:

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

4

1 回答 1

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

希望这可以帮助。

于 2019-02-15T05:56:19.303 回答