SQL server 2008 Einstellung Benutzer Login-data für DB und Web.Config

Hey, ich habe eine DB-Einstellungen in web.config wie folgt

<connectionStrings> <add name="DBConnectionString" connectionString="server=serverName;database=dbName;user=dbuser;pwd=dbpass;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" /> </connectionStrings> 

Was ist die beste Praxis für den Benutzernamen und das Passwort? Ist es am besten, nur ein stärkeres Passwort zu machen, dh Iu5jku23 so etwas?

Und dann in SQL server 2008 was sind die besten Einstellungen für den Benutzer im Moment mein sql Benutzer hat

 db_datareader
 db_datawriter
 db_owner
 db_securityadmin
 db_accessadmin

irgendjemand sollte ich entfernen?

Beispiele für starke SQL server-Passwörter:

  • Enthält nicht ganz oder teilweise den Benutzernamen des Benutzers
  • Es sind mehr als acht character lang
  • Enthält character aus mindestens drei der folgenden Kategorien:
  • Englische Großbuchstaben (A bis Z)
  • Englische Kleinbuchstaben (a bis z)
  • Basis 10 Ziffern (0 bis 9)
  • Nichtalphabetische character (zB:!, $, #,%)

Soweit das Festlegen von permissions, hängt es wirklich davon ab, wie körnig Sie wollen und wie begrenzt Sie Ihre Angriffsfläche haben wollen.

Einstellung db_owner im Grunde erlaubt, dass Benutzer alles zu tun. Also, wenn diese besondere "Konto" muss nur data zu lesen und zeigen sie auf einer Webseite, als datareader wäre Ihre beste, sicherste Wahl.

So wie die meisten Dinge, es hängt davon ab, was du tust.

Best Practice ist es, die pwd nicht im Klartext zu speichern. Verwenden Sie immer ein starkes Passwort und verschlüsseln Sie es oder verwenden Sie Integrierte authentication.

In Bezug auf die databaserollen, mit db_owner der Rest sind redundant.

Bearbeiten:
In Bezug auf die Verschlüsselung web.config: Schauen Sie hier http://weblogs.asp.net/scottgu/archive/2006/01/09/434893.aspx . Sie sollten dem Benutzer nur das geben, was sie brauchen. Der Benutzer benötigt die permissions für die gespeicherten Prozeduren und liest / schreibt auf alle zugrunde liegenden Tabellen, die die Procs berühren. db_datareader erlaubt den Lesezugriff auf alles in der database, ebenfalls mit db_datawriter (nur dort ist der Schreibzugriff offensichtlich).