如何在Azure SQL数据库中对用户隐藏其他数据库?

时间:2019-02-01 02:02:45

标签: sql-server azure-sql-database ssms incompatibletypeerror system-databases

我正在使用SQL Server Management Studio v17.9.1。我按照this post的指南使用以下命令,但由于错误而失败。

REVOKE VIEW ANY DATABASE FROM PUBLIC
  

此版本的SQL Server不支持安全类'server'。

我也尝试了以下代码,但有相同的错误:

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

这怎么了?

1 个答案:

答案 0 :(得分:1)

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

Set

对于其他数据库也是如此:

var json = [
    {Year: "2016", A: "2.015", B: "1.959"},
    {Year: "2017", A: "1.200", C: "2.247"},
    {Year: "2018", A: "1.301", C: "2.056", D: "1"}
];

var set = new Set();
json.forEach((value)=> Object.keys(value).forEach(key => { set.add(key); }));
console.log([...set]);

用户在连接时必须指定所需的数据库,并且CREATE User Team1User WITH PASSWORD='<complex-password-here>'; 目录视图仅返回当前数据库。