2010-05-18 13 views
8

Come si imposta una connessione SQL server a sola lettura? Ho provato su Google e tutto quello che ho trovato era File Mode=Read Only, ma non ha funzionato (parola chiave File Mode non supportata). Il riferimento sembrava specifico per SQL CE.imposta la connessione al server sql in sola lettura?

Nessuna fortuna con SQLite Read Only=True entrambi.

operativa -Editazione-

mia stringa di connessione è inferiore. Non ho idea quando si tratta di configurare i tavoli. Non so come rendere utenti/permessi.

rdconn = new SqlConnection(@"(wrong)Read Only=True;Server=.\SQLExpress;AttachDbFilename=test2.mdf;Database=dbo;Integrated Security=SSPI;User Instance=True;"); 
+0

Che tipo di autenticazione usi? – hgulyan

+1

È possibile iniziare una transazione, lavorare, quindi eseguire il rollback della transazione. Non proprio quello che vuoi, ma questo assicurerebbe che non siano state apportate modifiche al database. –

risposta

7

appena impostato sui permessi dell'utente corrente per SELEZIONARE solo.

È quello che vuoi?

Fare clic sul db corrente in SQL Server Management Studio, dopo aver fatto clic su Sicurezza-> Utenti. Trova il tuo utente, fai clic destro su di lui -> Proprietà-> Securable. Contrassegna SELEZIONA, deseleziona tutti gli altri.

link Here're sulla gestione delle autorizzazioni

http://www.databasejournal.com/features/mssql/article.php/2246271/Managing-Users-Permissions-on-SQL-Server.htm

http://www.mssqlcity.com/Articles/Adm/manage_users_permissions.htm

appena trovato un uno strumento gratuito per la gestione delle autorizzazioni. Può essere utile anche. Controllare il link

http://www.idera.com/Products/Free-Tools/SQL-permissions/

UPDATE:

Se si desidera che il DB da sola lettura a qualsiasi utente:

ALTER DATABASE database-name SET READ_ONLY 

o leggere qui per maggiori informazioni

http://www.sqlservercurry.com/2009/03/set-database-to-read-only-mode-using.html

http://www.blackwasp.co.uk/SQLReadOnly.aspx

+0

Come faccio? –

+0

@ acidzombie24 leggi gli aggiornamenti – hgulyan

+4

speravo che ci fosse, come il poster originale sperava, un modo per impostare la mia * connessione * in sola lettura, utilizzando le stesse credenziali di autenticazione di SQL Server che altri stanno attualmente utilizzando. Simile a io sono un amministratore e UAC li toglie. E come sono ora utente standard e la modalità protetta toglie questi diritti. –

0

Se si desidera accedere al database in modalità di sola lettura, è possibile creare un utente per database e possibile abilitare i diritti 'leggere' e 'write' diritti disabilitare

è possibile vedere gli utenti sotto i database in SQLServer selezionare quello e se si vuole si può creare un nuovo utente altra cosa è possibile impostare i diritti di proprietà

riferiscono anche

http://www.zimbio.com/SQL/articles/-jf4iDK7qWQ/Set+database+read+only+mode+using+SQL+Server

2

Modificare le impostazioni di sicurezza per l'accesso utilizzato nel server SQL.
Ad esempio solo db_datareader.

0

È davvero semplice.

Se il db-utente viene chiamato MyApplicationWebServices_EN

Creare un nuovo login chiamato MyApplicationWebServicesReadOnly_EN, con la lingua predefinita inglese (o qualunque cosa avete bisogno), che è membro del server-ruolo "pubblico" (impostazione predefinita) .

Nel DB a cui si desidera che l'utente abbia accesso, creare un nuovo utente denominato MyApplicationWebServicesReadOnly_EN e mapparlo per accedere a MyApplicationWebServicesReadOnly_EN.

Fare clic con il pulsante destro del mouse sull'utente nel database e selezionare Proprietà -> Generale Nell'elenco Seleziona-box per "Abbonamento ai ruoli del database", selezionare solo db_datareader (assicurarsi che tutte le altre opzioni siano deselezionate).

Ora usare MyApplicationWebServicesReadOnly_EN nella stringa di connessione come "user id", e hai la modalità di sola lettura ..

Naturalmente, se il vostro intero db dovrebbe essere di sola lettura, quindi

ALTER DATABASE your_database_name SET READ_ONLY 

andrà bene, come ha detto hgulyan.

+3

Mentre la tua risposta sembra il più vicino a una soluzione reale alla domanda originale, penso che "davvero semplice" debba essere "veramente relativo" qui; p –

Problemi correlati