【问题标题】:Azure SQL Server Admin v/s Regular UserAzure SQL Server 管理员与普通用户
【发布时间】:2018-08-28 20:27:49
【问题描述】:

目前,我是 Azure SQL 服务器的服务器管理员。当我创建一个 azure 函数应用程序并连接到数据库(在服务器上)时,我必须从应用程序中指定一个 sql 连接字符串。连接字符串将使用我的用户名和密码。

我想更改此设置,使服务器管理员成为活动目录组(开发组或其他)。 Microsoft 支持人员告诉我,我无法为活动目录组设置密码。如何在没有密码的情况下创建连接字符串?还是我必须创建一个具有开发身份的 Office 365 帐户,以便设置开发用户和开发密码?

在 Sql server management (ssms) 中,server admin 列在 security 目录下。我一直在使用服务器管理员用户名和密码从 azure 函数应用程序连接到数据库。

现在我在 ssms 上创建了一个名为 Development 的用户,如下所示:

使用公司数据库 创建登录开发 WITH PASSWORD = '密码'; 去吧

我尝试在我的连接字符串中使用开发登录作为参数并收到此错误:

调用的目标已抛出异常。 .Net SqlClient 数据提供者:服务器主体“开发”无法访问数据库

【问题讨论】:

  • 不确定你在问什么。您说您可以访问“Azure 服务器”-您指的是虚拟机吗?另外,你在哪里设置这个连接字符串?请编辑您的问题以更清楚。现在,这个问题还不清楚,听起来也更适合 ServerFault(我还不知道这是一个编程问题)。

标签: azure server admin portal


【解决方案1】:

到目前为止,您只使用您提到的命令创建了一个 LOGIN。

下一步是创建将使用此登录名的用户,然后为该用户分配一些权限。我已经举了一个 db_datawriter 的例子,但是你可以选择不同的东西,比如 db_datareader 或 db_owner 等。

从登录创建用户[开发] [开发]

EXEC sp_addrolemember 'db_datawriter', '开发';

另外,Azure SQL 数据库支持包含数据库用户模型,您不需要先创建服务器级登录,然后再创建基于它的用户,而是直接创建一个仅包含在那个数据库。使用此模型有一些优点和缺点。你可以在这里获得更多信息 -

https://docs.microsoft.com/en-us/sql/relational-databases/security/contained-database-users-making-your-database-portable?view=sql-server-2017

【讨论】:

  • @Dtjin 该解决方案对您有用吗?还是仍面临以开发用户身份访问数据库的问题?
  • 嗨!很抱歉回复晚了,感谢您的帮助。我在服务器级别创建了登录,所以掌握。在我为登录分配用户并运行 sp_addrolemember 命令后,我收到此错误:无法更改角色 'db_owner',因为它不存在或您没有权限。
  • 那么服务器登录有不同的角色设置? docs.microsoft.com/en-us/sql/relational-databases/security/…
  • 确保在您的数据数据库而不是主数据库上运行这些命令(从登录名和 addrolemember 创建用户)。只有登录创建需要通过主数据库进行。
  • 我一直在为服务器内部的数据库创建用户,并且我知道该怎么做。我正在尝试添加一个登录名,以便我可以使用 sql server 身份验证访问服务器,这样我构建的应用程序将通过开发用户名和密码进行连接。我想我应该授予权限??
猜你喜欢
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
相关资源
最近更新 更多