在主数据库中:
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的表?
答案 0 :(得分: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
希望这会有所帮助。