![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Assume I have two databases, call them 'A' and 'B' running in the same instance of SQL Server 2008. I want to lock down 'A' so that no one, not even an admin, can get in and look around. |
|
I want to grant SELECT on a number of views in 'A' to anyone who has successfully connected to database 'B'. |
|
Is it possible to do something like this with certificates? |
#3
| |||
| |||
|
#4
| ||||||||
| ||||||||
|
|
I want database 'A' to be a "black box" that performs operations related to database 'B'. 'A' has some control data, and a number of stored procs, views, and table-valued functions that help the users of database 'B' do their jobs. The objects in 'A' have to act (sometimes) on the tables in database 'B'. There is a lot of logic and intellectual property in 'A' that I need to protect from prying eyes. |
|
I think that the WITH ENCRYPTION option is basically worthless for objects, because a number of tools can easily break that encryption. |
|
1. I want the user of database 'B' to be able to SELECT from A.schema.ip_view and use it in his/her own queries with other tables in database 'B'. |
|
3. Ideally, a display of the plan would just show joins to A.schema.ip_view, not the constituent objects of that view. |
|
4. Some stored procs in database 'A' will make/update tables and dump them into database 'B'. (I could avoid this if it is a big problem, but it would be nice to do) |
|
5. I don't want the user of database 'B' to know anything about the workings of view A.schema.ip_view. To that user, A.schema.ip_view should just be a "black box" that returns data. The user shouldn't be able to see the source A.schema.ip_view, nor object dependencies, etc. |
|
6. I don’t want to make it difficult to develop in 'A' for authorized developers. 7. I want to be able to remotely connect to 'A' to create or alter objects as needed. |
|
I thought that locking down access to database ‘A’ would be the best way, and I could just grant SELECT privileges on the appropriate objects in database ‘A’, but maybe there is a better or easier way to accomplish the goal. |
![]() |
| Thread Tools | |
| Display Modes | |
| |