【问题标题】:Add user in SQL Server Management Studio 2017在 SQL Server Management Studio 2017 中添加用户
【发布时间】:2018-06-01 04:02:43
【问题描述】:

我尝试(第一次)在我的 SQL Azure 数据库上创建一个用户帐户。 我在一些博客中读到我必须创建这些命令行

CREATE LOGIN login_name WITH PASSWORD = 'strong_password';
CREATE USER 'user_name' FOR LOGIN 'login_name';

然后

USE [Database];
GO
GRANT CONNECT TO login_name;

但是,当我尝试在我的数据库上连接这个新帐户时,我收到消息错误 916 服务器主体“login_name”无法在当前安全上下文下访问数据库“master”。

我不明白,因为不要为我的主用户创建我的新用户,而是为我的 SQL Azure 环境中的特定数据库(顺便说一下,我的 SQL Azure 中有 5 个数据库)

如果您有任何想法可以帮助我,请提前感谢

【问题讨论】:

  • 您没有将登录名映射到特定数据库,因此默认为 master。请阅读文档 (docs.microsoft.com/en-us/sql/t-sql/statements/…)
  • 来自文档 DEFAULT_DATABASE =database 指定要分配给登录的默认数据库。如果不包括此选项,则默认数据库设置为 master。 这似乎是您的问题。

标签: sql-server authentication


【解决方案1】:

首次登录时,除非在连接字符串中指定了数据库,否则登录会连接到其默认数据库。如果未在 CREATE LOGIN 语句中指定数据库,则使用系统默认值 master

要解决此问题,请将其用于您的 CREATE LOGIN:

CREATE LOGIN login_name WITH PASSWORD = 'strong_password',
      DEFAULT_DATABASE = MyDatabase;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2020-06-30
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    相关资源
    最近更新 更多