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

Lor*_*n H 33 azure-sql-database

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

我已经考虑过:

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

  • 改变登录. ALTER LOGIN不允许DEFAULT_DATABASE选择.

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

想法?

t_y*_*oya 10

连接字符串:

Server=tcp:[serverName].database.windows.net;Database=myDataBase;User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;Encrypt=True;
Run Code Online (Sandbox Code Playgroud)

在连接字符串中写入"数据库"属性时,可以更改连接默认数据库.

SSMS连接到数据库框,在conecct对话框中是选项 - > secont选项卡.


Her*_*ero 7

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

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


Pat*_*ood 6

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

  • 我不认为这会更改默认数据库。最初从SSMS登录时,它只是允许您连接到其他数据库 (4认同)

小智 6

就我而言,我设法通过直接在master数据库中创建登录名来做到这一点:

CREATE LOGIN newlogin WITH password='password'
GO

CREATE USER newlogin FOR LOGIN newlogin WITH DEFAULT_SCHEMA=[dbo]
GO
Run Code Online (Sandbox Code Playgroud)

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

CREATE USER newlogin FOR LOGIN newlogin WITH DEFAULT_SCHEMA=[dbo]
GO
Run Code Online (Sandbox Code Playgroud)

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

Alter role db_owner add member newlogin
Run Code Online (Sandbox Code Playgroud)

希望这对您也有用。


Rob*_*ick 5

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

初始参数选项卡

  • 为了达到相同的效果,可以使用选项卡“连接属性”和字段“连接到数据库”(它确实存在于 2020 年) (2认同)