Hiding the Database
-
Hello, The application was developed in .NET and SQL 2005. Originally, we'd thought that it'd be a web-based application (i.e. the SQL database will be hosted by us and users can connect to it). But some clients want the database to be hosted on their computer itself. Of course the application needs the database to run, however, by putting the database on the client's machine we will lose control of our data. I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans. Nothing is altered in the database--we are simply reading data from the SQL table, so should we explore other things (indexed flat files?) to make this into a software product without losing control over the data? The Database size is around 30GB.
G. Satish
-
Hello, The application was developed in .NET and SQL 2005. Originally, we'd thought that it'd be a web-based application (i.e. the SQL database will be hosted by us and users can connect to it). But some clients want the database to be hosted on their computer itself. Of course the application needs the database to run, however, by putting the database on the client's machine we will lose control of our data. I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans. Nothing is altered in the database--we are simply reading data from the SQL table, so should we explore other things (indexed flat files?) to make this into a software product without losing control over the data? The Database size is around 30GB.
G. Satish
You have a number of options - none of which is having 30gb of text files. You can manage the database access by permissions so only you can get into the database. Most DBAs discourage this as they are all control freaks. You can encrypt the data and the code (stored procs) this will probably be more acceptable and gives reasonable protection. There are probably others that I'm not conversant with.
Never underestimate the power of human stupidity RAH
-
Hello, The application was developed in .NET and SQL 2005. Originally, we'd thought that it'd be a web-based application (i.e. the SQL database will be hosted by us and users can connect to it). But some clients want the database to be hosted on their computer itself. Of course the application needs the database to run, however, by putting the database on the client's machine we will lose control of our data. I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans. Nothing is altered in the database--we are simply reading data from the SQL table, so should we explore other things (indexed flat files?) to make this into a software product without losing control over the data? The Database size is around 30GB.
G. Satish
It is possible to make a Sql Server database readonly.
ALTER DATABASE database-name SET READ_ONLY
However, this can only be done once the database has been attached to the server instance.
-
Hello, The application was developed in .NET and SQL 2005. Originally, we'd thought that it'd be a web-based application (i.e. the SQL database will be hosted by us and users can connect to it). But some clients want the database to be hosted on their computer itself. Of course the application needs the database to run, however, by putting the database on the client's machine we will lose control of our data. I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans. Nothing is altered in the database--we are simply reading data from the SQL table, so should we explore other things (indexed flat files?) to make this into a software product without losing control over the data? The Database size is around 30GB.
G. Satish
Satish - Developer wrote:
I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans.
AFAIK, there is none; your application runs under the security-restrictions of the human that started the application. This gets mapped to a SQL-Login, and that determines what securables you're allowed to see, and what not. ASP.NET has it's own Windows-identity defined; perhaps you can do something similar?
I are Troll :suss:
-
Hello, The application was developed in .NET and SQL 2005. Originally, we'd thought that it'd be a web-based application (i.e. the SQL database will be hosted by us and users can connect to it). But some clients want the database to be hosted on their computer itself. Of course the application needs the database to run, however, by putting the database on the client's machine we will lose control of our data. I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans. Nothing is altered in the database--we are simply reading data from the SQL table, so should we explore other things (indexed flat files?) to make this into a software product without losing control over the data? The Database size is around 30GB.
G. Satish
Satish - Developer wrote:
I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans.
Thats because there isn't one. The best you can do is either restrict access by using sql security (plenty of details in the help files) or encrypting your database.
Bob Ashfield Consultants Ltd
-
Hello, The application was developed in .NET and SQL 2005. Originally, we'd thought that it'd be a web-based application (i.e. the SQL database will be hosted by us and users can connect to it). But some clients want the database to be hosted on their computer itself. Of course the application needs the database to run, however, by putting the database on the client's machine we will lose control of our data. I cannot find an easy way that SQL provides to allow only the application to access the data, but not humans. Nothing is altered in the database--we are simply reading data from the SQL table, so should we explore other things (indexed flat files?) to make this into a software product without losing control over the data? The Database size is around 30GB.
G. Satish
Your data? What do you mean your data? :-D