无法为无法在数据库中进行身份验证的用户提供参数 PASSWORD

Lie*_*ero 7 sql-server database-project azure-sql-database

当我登录到 azure 门户时,选择我的 SQL 数据库 -> 工具 -> QueryEditor 并输入:

ALTER USER MyUser WITH Password = '**********'
Run Code Online (Sandbox Code Playgroud)

我收到错误:

无法执行查询。错误:无法为无法在数据库中进行身份验证的用户提供参数 PASSWORD。

我在 MyUser.sql (Build Action=Build) 的 Visual Studio 数据库项目中创建了用户:

CREATE USER [My_User] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[dbo];
Run Code Online (Sandbox Code Playgroud)

为什么我收到消息?

是否可以在数据库项目中创建用户,以便我稍后指定密码(不是源代码)?

sep*_*pic 5

您的用户不是可以通过数据库进行身份验证的包含数据库用户。这是因为您没有使用语法创建它

CREATE USER user_name WITH PASSWORD = 'strong_password';
Run Code Online (Sandbox Code Playgroud)

您创建的是没有登录的“传统”用户,在“传统”模型user中不能有密码,只有相应的login才能。但是您的用户在创建时没有相应的登录名without login,因此您根本无法更改密码。

在这里您可以找到有关包含的数据库用户的更多详细信息:包含的数据库用户

  • 那么没有解决办法吗? (3认同)
  • 我使用没有登录的用户进行测试。你可以在你的数据库中创建这样一个用户,给他一些权限并测试这个测试用户执行的代码:execute as user='myTESTuser'...some code...revert。 (2认同)