In VB.NET, I am trying to execute a stored procedure that tries to insert values into a table using a SELECT statement. The SELECT statement uses tables from this database and also uses a view containing this database's tables and a table from a different database. When I try to execute the procedure, I get an error message that the user ID in my connection string does not have rights to the different database. What would be the solution to this problem?
The thing to investigate here that will allow access across databases is cross-database ownership chaining. The behavior of this function was modified in SQL Server 2000's Service Pack 3. Take a look at the entry in Books Online called
"Cross DB Ownership Chaining option."
Make sure you have an updated copy of Books Online too.
Dig Deeper on SQL Server Stored Procedures
Related Q&A from Greg Low
Find how to query in SQL Server to get all database names created by users.
Triggers in SQL Server can be executed before a table is updated. Get triggers to read and extract table values before and after the table is updated.
Find out why problems calling an extended stored procedure in SQL Server 2005 can involve security settings.