security - Secure SQL Server accessed by fat client -


Is there a way to secure a SQL Server database that is accessed by the fat client? Meaning: This app communicates directly with the database because it keeps the SQL statements on its own. This means, the connection string should be somewhere on the client. Using this connection string (either with Vnath or SQL Server authentication) any user can use some management studio or command line from DB and DB can place different statements in comparison to GII. What to do about it? I can not place another layer between the client and the database because this architecture is okay.

In all security models, including Windows and SQL authentication, the right to a right User (for an identity), and not for an application. Therefore, any access required by the app must be given to the user to run the application. When Windows authentication is used, it means that the same user can take advantage of all the privileges required by an application from an SSMS query. This is a basic rule that any administrator should understand. From a security point (CC compliance and such things are meant) it is a fact and there is no attempt to restrain it.

But from a practical perspective, some measures may be deployed. The most commonly used one uses it and allows only access to a well defined set of client workstations, and SSMS for a well-defined set of users.

  Disallow Trigger Disallow on All Servers ... Login as '...' to log in as (APP_NAME () = 'Microsoft SQL Server Management Studio' Or APP_NAME () = 'Microsoft SQL Server Management Studio - query') and (ORIGINAL_LOGIN () not (...) or HOST_NAME () not (...) rollback; end;  

It is important to understand that such mechanism is not security features, because they are easily interrupted by a respectable user They are more like a door lock: They do not keep the thieves, They keep honest users honest.


Comments

Popular posts from this blog

c# - sqlDecimal to decimal clr stored procedure Unable to cast object of type 'System.Data.SqlTypes.SqlDecimal' to type 'System.IConvertible' -

Calling GetGUIThreadInfo from Outlook VBA -

Obfuscating Python code? -