gpt4 book ai didi

sql-server - 有没有办法在 Azure PaaS 数据库中创建第二个登录名(使用用户)?

转载 作者:行者123 更新时间:2023-12-03 05:41:15 27 4
gpt4 key购买 nike

我们已将数据库从物理服务器迁移到 Azure PaaS SQL 数据库。应用程序使用服务器登录名连接到数据库。我需要创建另一个对数据库具有只读访问权限的登录帐户。有人可以帮忙吗?

我已经尝试过的事情。

CREATE LOGIN login123
WITH PASSWORD = *******

CREATE USER login123
FOR LOGIN login123
WITH DEFAULT_SCHEMA = dbo

ALTER ROLE db_datareader ADD MEMBER login123

上述内容已成功执行,但当应用程序使用此登录时,会出现以下错误。“服务器主体“login123”无法在当前安全上下文下访问数据库“master”。无法打开用户默认数据库。登录失败。”

最佳答案

当您运行此查询时:

CREATE LOGIN login123
WITH PASSWORD = *******

CREATE USER login123
FOR LOGIN login123
WITH DEFAULT_SCHEMA = dbo

ALTER ROLE db_datareader ADD MEMBER login123

这意味着新用户只有数据库的只读权限。

查询在哪个数据库中运行,只读权限针对哪个数据库。

用户没有权限访问其他数据库或主数据库。

更多详情请参见:

  1. Controlling and granting database access to SQL Database and SQLData Warehouse
  2. Database-Level Roles

如果您希望用户对多个数据库都具有只读权限,则应该在不同的数据库中创建多个用户(具有相同的用户)。使用一个登录映射到更多用户。

这是我测试过的 T-SQL 代码,它可以在 Azure SQL 数据库中运行:

USE master
CREATE LOGIN login123
WITH PASSWORD = '****'
GO
CREATE USER login123
FOR LOGIN login123
WITH DEFAULT_SCHEMA = db_datareader
GO


USE Mydatabase
CREATE USER login123
FOR LOGIN login123
WITH DEFAULT_SCHEMA = dbo
GO
ALTER ROLE db_datareader ADD MEMBER login123
GO

``````

希望这有帮助。

关于sql-server - 有没有办法在 Azure PaaS 数据库中创建第二个登录名(使用用户)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58520419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com