更改SQL Azure登录的默认数据库

时间:2012-01-14 00:32:42

标签: azure-sql-database

我想更改登录的默认数据库,以支持可以访问SQL Azure但不允许轻松更改连接字符串的软件。看来SQL Azure默认为master数据库。

我已经考虑过了:

  • 存储过程。我找不到执行此操作的存储过程(据我所知,sp_defaultdb未在SQL Azure中实现)

  • 改变登录。 ALTER LOGIN不允许DEFAULT_DATABASE选项。

  • SSMS。 SSMS似乎不允许通过SQL Azure接口进行太多用户控制。

想法?

7 个答案:

答案 0 :(得分:10)

连接字符串:

Server=tcp:[serverName].database.windows.net;Database=myDataBase;User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;Encrypt=True;

当您在连接字符串中写入“数据库”属性时,可以更改连接默认数据库。

SSMS连接到数据库框,在conecct对话框中是选项> secont标签。

答案 1 :(得分:8)

使用SSMS登录时,您可以轻松更改默认数据库。单击“登录”对话框上的“选项”按钮,然后单击“连接属性”选项卡。在“连接到数据库”框中,输入数据库的名称。

答案 2 :(得分:7)

您已经发现SQL Azure中没有DEFAULT_DATABASE选项。因此,如果您无法更改通常指定数据库名称的应用程序的连接字符串,那么您将无法使用master。

但是......是否可以创建ODBC连接,并将应​​用程序配置为使用ODBC?使用ODBC将允许您指定默认数据库。

答案 3 :(得分:2)

您必须使用以下内容才能更改"默认"数据库

  1. 使用" SQL Server Native Client 10.0"或更高,而不是使用" SQL Server作为驱动程序
  2. 使用UserName @ AzureConnnectString
  3. 等完整用户ID

    对我而言 NorthWind@w6ywertsd8h.database.windows.net

    这里有更多细节 http://debugmode.net/2011/04/22/connecting-microsoft-access-to-sql-azure/

答案 4 :(得分:2)

在我的情况下,我设法通过直接在master数据库中创建登录来实现:

CREATE LOGIN newlogin WITH password='password'
GO

CREATE USER newlogin FOR LOGIN newlogin WITH DEFAULT_SCHEMA=[dbo]
GO

然后我在我想要访问的数据库中创建了一个用户:

CREATE USER newlogin FOR LOGIN newlogin WITH DEFAULT_SCHEMA=[dbo]
GO

最后将其添加到特定数据库中的角色以获得正确的权限:

Alter role db_owner add member newlogin

希望这也适合你。

答案 5 :(得分:1)

到目前为止,SSMS中最简单的方法是使用附加参数选项卡并提供初始目录,例如

Initial Parameters tab

答案 6 :(得分:0)

另一种选择是在主数据库托管数据库中创建映射用户。这将允许SSMS连接到服务器并使用master作为默认数据库,然后用户可以打开数据库。我不是DBA,所以我不知道这个的含义,但这就是我解决它的方法。我的数据库只是用于POC项目,所以它没有很多安全要求。