我想更改登录的默认数据库,以支持可以访问SQL Azure但不允许轻松更改连接字符串的软件。看来SQL Azure默认为master
数据库。
我已经考虑过了:
存储过程。我找不到执行此操作的存储过程(据我所知,sp_defaultdb
未在SQL Azure中实现)
改变登录。 ALTER LOGIN
不允许DEFAULT_DATABASE
选项。
SSMS。 SSMS似乎不允许通过SQL Azure接口进行太多用户控制。
想法?
答案 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)
您必须使用以下内容才能更改"默认"数据库
对我而言 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)
答案 6 :(得分:0)
另一种选择是在主数据库和托管数据库中创建映射用户。这将允许SSMS连接到服务器并使用master作为默认数据库,然后用户可以打开数据库。我不是DBA,所以我不知道这个的含义,但这就是我解决它的方法。我的数据库只是用于POC项目,所以它没有很多安全要求。