简体   繁体   中英

How can I access all databases in SQL Server Management Studio?

I'm working on a query editor in which user enters a SQL query and in code behind I pass this query to a SqlCommand and execute it and display result to the user.

But there is one problem: how can I access all the databases in SQL Server which the user created? How can I set initial catalog= to access all databases in SQL Server, so that user enters any query, then it will be execute against all those databases.

For example:

use db_compiler 
select * from std

use student 
select * from student

So I'm going to say this - what you are requesting to do is a fundamentally BAD idea. SQL Injection is a concern among many, many other things.

However, if you want a list of the databases to set initial catalog, check out the answer to this question: SQL Server query to find all current database names

you don't require to set initial catalog in order to be able to access to other databases.

Ability to access other database is determine by the permission of the login. If the login is able has the permission to access to other database, you can you use the 3 part naming convention to access it.

Example, even if the initial catalgo is DB1, it will be to access the TABLE3 in DB2

SELECT *
FROM   [DB2].[SCHEMA].[TABLE3]

For example instead of

use db_compiler 
select * from std

you can

select * 
from   db_compiler.dbo.std

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM