Cade... I dont believe you're able to give roles to "applications" in windows...
By that I think he means you assign roles to a user, then make the application use that user account.
So what you're saying is, if I had a userId of "MYDOMAIN/nick"... then in AD you would assign MYDOMAIN/nick to a group with other people that use this same app, and then in SQL Server you would add that group to security and assign it a role?
Correct.
my concern is that if I sign into my machine with MYDOMAIN/nick... that activates my entire machine as "trusted" to sql server (through windows authenticatino)... so that means I could fire up Visual Studio and start building any app I want and potentially connect directly to the database and do whatever I'd like to it... which also means any other application I can download/install would potentially have access to that database... correct?
Yes that is correct. Because you (MYDOMAIN/nick) are being trusted. SQL Server does not know what you are running on your PC.
However going back to your original question, the program that you are talking about should not connect at MYDOMAIN/nick, it should connect with the username MYDOMAIN/mycustomprogram. This is a user account just for this program. You could run the program from your PC, but in that case it will still use the username MYDOMAIN/mycustomprogram, not MYDOMAIN/nick.
You could then have a second program on your PC, which should then use a second username for authentication to the SQL server, e.g. MYDOMAIN/mycustomprogram2
So on the same PC you would then have:
- MYDOMAIN/nick (AD)
- MYDOMAIN/mycustomprogram (SQL or AD user)
- MYDOMAIN/mycustomprogram2 (SQL or AD user)
Using these custom usernames at an application level overrides the AD authentication.
It also means that if you have an issue with one of the 2 programs, or the program locks a user account, etc. it is easy to diagnose.
I learned that SAP client encrypts its connection info and stores it in the registry.
Which part of the connection are you talking about? I am not aware of anything being stored in this way.
Does this answer your questions?
Please vote up helpful answers ;-)