首页 > 解决方案 > 如何在 Azure SQL 数据库中对用户隐藏其他数据库?

问题描述

我正在使用 SQL Server Management Studio v17.9.1。我按照这篇文章的指南使用以下命令,但失败并出现错误。

REVOKE VIEW ANY DATABASE FROM PUBLIC

此版本的 SQL Server 不支持安全类“服务器”。

我也尝试了下面的代码,但出现了同样的错误:

USE master;
GO
DENY VIEW ANY DATABASE TO TestUser;
GO

这有什么问题?

标签: sql-serverazure-sql-databasessmsincompatibletypeerrorsystem-databases

解决方案


在 Azure SQL 数据库(和本地包含的数据库)中,用户可以在数据库级别进行身份验证,而无需服务器级别的登录。例如,在 Team1 数据库的上下文中:

CREATE User Team1User WITH PASSWORD='<complex-password-here>';

同样对于其他数据库:

CREATE User Team2User WITH PASSWORD='<complex-password-here>';

用户在连接时必须指定所需的数据库,并且sys.databases目录视图仅返回当前数据库。


推荐阅读