• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 350
  • Last Modified:

permission to hit instance from ssms

even though the user has read permissions to the database, what is the basic permissions required for that domain login user to be able to successfully make a connection to the instance through the SSMS engine? is that a OS setting or ports?

Thanks
0
anushahanna
Asked:
anushahanna
  • 9
  • 6
1 Solution
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
Login should be active and has CONNECT privileges to the server ie., Master database.

>> is that a OS setting or ports?

Nothing with respect to OS or port but the permission granted to the user or login.
0
 
anushahannaAuthor Commented:
OK. Thanks.

Is it a grant statement that can give connect to a login? can you please suggest the syntax?

i tried something like grant connect to login [SRBSV\jimw], but it is not right..
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
>> Is it a grant statement that can give connect to a login? can you please suggest the syntax?

Forgot to explain in more detail.
When you create a login, it would by having access to master database. In the same way, login can be assigned to some other database as default instead of master.

In that case, you need to have GRANT CONNECT granted to the particular user to connect to user databases.

>> grant connect to login [SRBSV\jimw]

Below should work:
USE ur_user_db_name
GO
GRANT CONNECT SQL TO [someuser]
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
anushahannaAuthor Commented:
OK. Thank you.

When i did your code, it says

Permissions at the server scope can only be granted when the current database is master
0
 
anushahannaAuthor Commented:
to recap, i created a login and then the user at the database for this login.

then i said

use tracker
grant connect sql to jimw, and then it gave the above message.
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
Sorry for the confusion, Script to prevent user from those databases should be

USE ur_user_db_name
GO
REVOKE VIEW ANY DATABASE FROM [SRBSV\jimw]
0
 
anushahannaAuthor Commented:
The above fails with
USE ur_user_db_name
but works ok with
USE master
0
 
anushahannaAuthor Commented:
GRANT VIEW ANY DATABASE TO [SRBSV\jimw]
works from master too..

but can we just specify the database and not do 'any'
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
>> GRANT VIEW ANY DATABASE TO [SRBSV\jimw]
works from master too..

Yes, Grant will work from Master only.
In order to prevent users from viewing other databases, they have to be revoked from the user databases using REVOKE statement provided above in the user databases..
Hope this is what I understood your problem is else kindly clarify..
0
 
anushahannaAuthor Commented:
like GRANT, REVOKE also says it can work only from MASTER database; how then can we specify which database we want to revoke VIEW ANY DATABASE?
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
Tired a little bit on that day and hence confused you out:

1. In order to deny users viewing any user databases, then issue the below

use master
GO
REVOKE VIEW ANY DATABASE from public
GO

2. Once issued, users would be able to see only master and tempdb databases alone. If you want users (your login) to see any user databases then issue
use ur_db_name
GO
GRANT CONNECT SQL TO user_name
GO

Hope this clarifies
0
 
anushahannaAuthor Commented:
Thanks. I could see the effect of
REVOKE VIEW ANY DATABASE from public
very clearly.

Could I have just did that to the login, instead of public?
0
 
anushahannaAuthor Commented:
>>
use ur_db_name
GO
GRANT CONNECT SQL TO user_name
GO

it says
"Permissions at the server scope can only be granted when the current database is master"
0
 
Raja Jegan RSQL Server DBA & ArchitectCommented:
>> Could I have just did that to the login, instead of public?

Yes, just use the login name instead of public which should do:
use master
GO
REVOKE VIEW ANY DATABASE from login_name
GO

>> "Permissions at the server scope can only be granted when the current database is master"

Sorry for the confusion again..
Once VIEW ANY DATABASE is revoked, only the databases where the particular login have users created will be visible in SSMS.
0
 
anushahannaAuthor Commented:
Thanks very much.
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 9
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now