2016-04-29 99 views
1

我在Azure中创建了一个新的SQL服务器,其中包含一个数据库,并且使用admin帐户登录后,我添加了一个新用户,我只想访问一个数据库。SQL Server - 新用户有权访问master数据库

在SSMS中,我右键单击了mynewdatabase数据库并选择了新的查询。

我执行

CREATE USER mynewuser WITH PASSWORD ='good password here'; 
ALTER ROLE db_owner ADD MEMBER mynewuser ; 

现在作为mynewuser我仍然可以看到主数据库登录后。

问题是如何限制mynewuser只能访问mynewdatabase

我确定这是基本的。

+0

你可以使用ALTER USER来更改默认数据库,例如这里,http://stackoverflow.com/questions/105950/how-do-i-set-the-default-database-in-sql-server-from-码。用户仍然会列出数据库,但无法访问它。默认设置只是更改用户将连接到的默认数据库,除非他们明确指定要连接的数据库。 –

回答

2

在SQL Server中,包括Azure SQL DB,所有用户都可以在sys.databases中看到所有系统数据库。这与能够连接到它们或在其中运行查询不同。这没有透露任何敏感信息,因为这些是系统数据库,您是否看到他们列出或不知道您会知道他们在那里。请参阅https://msdn.microsoft.com/en-us/library/ms178534.aspx#Anchor_0

根据您描述的步骤,创建了一个包含用户,该用户不应该能够连接到master数据库或在Azure SQL DB中运行查询。