2010-05-18 25 views
8

¿Cómo configuro una conexión de servidor SQL de solo lectura? Probé con Google y todo lo que encontré fue File Mode=Read Only, pero no funcionó (no se admite la palabra clave Modo de archivo). La referencia parecía específica de SQL CE.establece la conexión del servidor sql a solo lectura?

No hubo suerte con SQLite Read Only=True tampoco.

operación -Editar-

Mi cadena de conexión está por debajo. No tengo idea cuando se trata de configurar las tablas. No sé cómo hacer usuarios/permisos.

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

¿Qué tipo de autenticación usas? – hgulyan

+1

Puede comenzar una transacción, hacer un trabajo y luego retrotraer la transacción. No es exactamente lo que quiere, pero esto garantizaría que no se realizaran cambios en la base de datos. –

Respuesta

7

Simplemente configure los permisos del usuario actual a SELECCIONE solamente.

¿Eso es lo que quieres?

Haga clic en la base de datos actual en SQL Server Management Studio, después haga clic en Seguridad-> Usuarios. Encuentra a tu usuario, haz clic derecho sobre él -> propiedades-> Securable. Simplemente marque SELECCIONAR, desmarque todos los demás.

enlaces Acá sobre la gestión de permisos

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

acaba de encontrar una herramienta libre para la gestión de permisos. Puede ser útil también Compruebe el enlace

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

ACTUALIZACIÓN:

Si desea que la base de datos a ser de sólo lectura a cualquier usuario:

ALTER DATABASE database-name SET READ_ONLY 

o leer aquí para más información

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

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

+0

¿Cómo hago eso? –

+0

@ acidzombie24 lea las actualizaciones – hgulyan

+4

tenía la esperanza de que hubiera, como el póster original esperaba, una forma de configurar mi * conexión * para que sea de solo lectura, utilizando las mismas credenciales de autenticación de SQL Server que otras están usando actualmente. Similar a lo que soy administrador, y UAC quita esos derechos. Y cómo ahora soy usuario estándar, y el modo protegido quita esos derechos. –

2

Cambie la configuración de seguridad para el inicio de sesión utilizado en el servidor SQL.
Por ejemplo, solo db_datareader.

0

Es realmente simple.

Si su base de datos del usuario se llama MyApplicationWebServices_EN

Crear una nueva entrada llamada MyApplicationWebServicesReadOnly_EN, con el lenguaje por defecto Inglés (o lo que necesita), que es miembro del servidor en roles "público" solamente (por defecto) .

En la base de datos a la que desea que el usuario tenga acceso, cree un nuevo usuario llamado MyApplicationWebServicesReadOnly_EN y asócielo para iniciar sesión en MyApplicationWebServicesReadOnly_EN.

Haga clic con el usuario en la base de datos y seleccione Propiedades -> General En la lista Seleccionar la caja de "La pertenencia a funciones de base", seleccione db_datareader solamente (asegúrese de que las opciones de todos los otros son sin marcar).

Ahora usa MyApplicationWebServicesReadOnly_EN en la cadena de conexión como "ID de usuario", y tiene su modo de sólo lectura ..

Por supuesto, de sólo lectura si toda su base de datos debe ser, entonces

ALTER DATABASE your_database_name SET READ_ONLY 

irá bien, como dijo hgulyan.

+3

Si bien su respuesta parece ser la más cercana a una solución real a la pregunta original, creo que "realmente simple" debe ser "realmente relativa" aquí; –

Cuestiones relacionadas