<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.open-office.es/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://wiki.open-office.es/index.php?action=history&amp;feed=atom&amp;title=Gestion_de_permisos_de_usuario_en_OpenOffice_Base</id>
		<title>Gestion de permisos de usuario en OpenOffice Base - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.open-office.es/index.php?action=history&amp;feed=atom&amp;title=Gestion_de_permisos_de_usuario_en_OpenOffice_Base"/>
		<link rel="alternate" type="text/html" href="https://wiki.open-office.es/index.php?title=Gestion_de_permisos_de_usuario_en_OpenOffice_Base&amp;action=history"/>
		<updated>2026-06-04T02:24:43Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.23.5</generator>

	<entry>
		<id>https://wiki.open-office.es/index.php?title=Gestion_de_permisos_de_usuario_en_OpenOffice_Base&amp;diff=13956&amp;oldid=prev</id>
		<title>Salva en 23:34 29 ago 2015</title>
		<link rel="alternate" type="text/html" href="https://wiki.open-office.es/index.php?title=Gestion_de_permisos_de_usuario_en_OpenOffice_Base&amp;diff=13956&amp;oldid=prev"/>
				<updated>2015-08-29T23:34:35Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Menu|cat=Base|subcat=|Titulo=Gestión de permisos de usuario en OpenOffice Base|vers=3.3.x}}&lt;br /&gt;
&amp;lt;seo title=&amp;quot;Apache OpenOffice Base - Gestión de permisos de usuario&amp;quot;&lt;br /&gt;
metakeywords=&amp;quot;permiso,usuario,contraseña,base,base de datos,manual,curso,tutorial,openoffice,libreoffice,neooffice&amp;quot; &lt;br /&gt;
metadescription=&amp;quot;Cómo asegurar el acceso a tablas y recursos con contraseña, y modificar los derechos de los usuarios en OpenOffice Base&amp;quot;/&amp;gt;&lt;br /&gt;
¿Es posible asegurar el acceso a una o más tablas con una contraseña? ¿Es posible dotar o vetar a los usuarios de permisos para editar, modificar, borrar o crear tablas? &lt;br /&gt;
&lt;br /&gt;
'''Base''' permite la creación de usuarios y dotarlos de una contraseña. Cada usuario, a su vez, puede ser dotado de permisos de selección, inserción, actualización y borrado de registros en las correspondientes tablas. &lt;br /&gt;
&lt;br /&gt;
No existe un diálogo desde el cual se pueda realizar este proceso. Pero sí se puede gestionar mediante sentencias '''SQL''' lanzadas desde el menú '''Herramientas &amp;gt; SQL''' &lt;br /&gt;
&lt;br /&gt;
Veamos cómo podemos gestinar los derechos de los usuarios en '''Apache OpenOffice Base'''.&lt;br /&gt;
&lt;br /&gt;
== El usuario ''&amp;lt;nowiki&amp;gt;sa&amp;lt;/nowiki&amp;gt;''  ==&lt;br /&gt;
Todas las bases de datos embebidas en documentos '''ODB''' (Base) se generan con un usuario administrador genérico por defecto, llamado '''&amp;lt;nowiki&amp;gt;sa&amp;lt;/nowiki&amp;gt;''' (posiblemente por ''&amp;lt;nowiki&amp;gt;standard administrator&amp;lt;/nowiki&amp;gt;'' o ''&amp;lt;nowiki&amp;gt;super administrator&amp;lt;/nowiki&amp;gt;''), y que carece de contraseña.&lt;br /&gt;
&lt;br /&gt;
El usuario '''&amp;lt;nowiki&amp;gt;sa&amp;lt;/nowiki&amp;gt;''' tiene asignados por defecto todos los permisos y por lo tanto, puede hacer cualquier cosa con las tablas. &lt;br /&gt;
{{Aviso|imagen=[[image:Señal_Nota.png|link=]]|color=RoyalBlue|texto=No es buena idea asignar una contraseña al administrador.&amp;lt;br&amp;gt;Si lo haces, al abrir el documento de base verás que se ha perdido la conexión con la base de datos y toda posibilidad de acceder a su contenido}}&lt;br /&gt;
&lt;br /&gt;
== Crear un nuevo usuario  ==&lt;br /&gt;
La sentencia que podemos utilizar para crear un nuevo usuario en nuestra base de datos es la siguiente &lt;br /&gt;
&lt;br /&gt;
{{Fosfi|CREATE USER &amp;quot;nombre_usuario&amp;quot; PASSWORD &amp;quot;contraseña&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
Es conveniente no utilizar letras acentuadas ni caracteres como la '''ñ''' o la '''ç''' en el nombre del usuario. Tanto el nombre del usuario como la contraseña deben escribirse encerrados entre comillas dobles. &lt;br /&gt;
&lt;br /&gt;
Como administrador puedes crear nuevos usuarios, asignarles o revocarles permisos, o eliminar los usuarios creados.&lt;br /&gt;
&lt;br /&gt;
== Crear nuevos usuarios ==&lt;br /&gt;
Para crear nuevos usuarios utilizaremos la siguiente sentencia:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|CREATE USER &amp;quot;nombre_usuario&amp;quot; PASSWORD &amp;quot;contraseña&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
Es necesario encerrar entre comillas dobles tanto el nombre y la contraseña. No es recomendable utilizar letras acentuadas, la letra '''ñ''' o la '''ç''' en el nombre del usuario.&lt;br /&gt;
&lt;br /&gt;
== Adjudicar permisos sobre tablas ==&lt;br /&gt;
Una vez creado un usuario, y si eres administrador, puedes adjudicar permisos sobre las tablas utilizando la sentencia '''GRANT TO'''.&lt;br /&gt;
&lt;br /&gt;
Su sintaxis es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|GRANT tipo_permiso ON &amp;quot;nombre_tabla&amp;quot; TO &amp;quot;nombre_usuario&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
Existen cuatro tipos de permiso que se pueden adjudicar:&lt;br /&gt;
::* '''SELECT''': permite seleccionar registros de una tabla y visualizarlos&lt;br /&gt;
::* '''INSERT''': permite insertar o añadir registros a una tabla&lt;br /&gt;
::* '''UPDATE''': permite modificar registros de una tabla&lt;br /&gt;
::* '''DELETE''': permite eliminar registros de una tabla&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para asignar el permiso ''UPDATE'' al usuario ''JUAN'' sobre la tabla ''CLIENTES'' utilizaremos una sentencia como la siguiente:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|GRANT UPDATE ON &amp;quot;CLIENTES&amp;quot; TO &amp;quot;JUAN&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
No se puede asignar nuevos permisos al administrador, ya que por defecto los posee todos.&lt;br /&gt;
&lt;br /&gt;
== Revocar permisos sobre tablas ==&lt;br /&gt;
Si eres administrador, puedes revocar permisos sobre las tablas utilizando la sentencia '''REVOKE FROM'''.&lt;br /&gt;
&lt;br /&gt;
Su sintaxis es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|REVOKE tipo_permiso ON &amp;quot;nombre_tabla&amp;quot; FROM &amp;quot;nombre_usuario&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, para revocar el permiso ''UPDATE'' al usuario ''JUAN'' sobre la tabla ''CLIENTES'' utilizaremos una sentencia como la siguiente:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|REVOKE UPDATE ON &amp;quot;CLIENTES&amp;quot; FROM &amp;quot;JUAN&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
No se pueden revocar permisos al administrador, ya que por defecto los tiene siempre todos asignados.&lt;br /&gt;
&lt;br /&gt;
== Adjudicar o revocar todos los permisos ==&lt;br /&gt;
Puedes utilizar la cláusula ALL para asignar o revocar todos permisos a un usuario.&lt;br /&gt;
&lt;br /&gt;
La sintaxis para asignar todos los permisos es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|GRANT ALL ON &amp;quot;nombre_tabla&amp;quot; TO &amp;quot;nombre_usuario&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
La sintaxis para revocar todos los permisos a un usuario es la siguiente&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|REVOKE ALL ON &amp;quot;nombre_tabla&amp;quot; FROM &amp;quot;nombre_usuario&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
== Adjudicar o revocar permisos a todos los usuarios ==&lt;br /&gt;
Puedes utilizar la cláusula PUBLIC para asignar o revocar permisos a todos los usuarios.&lt;br /&gt;
&lt;br /&gt;
La sintaxis para asignar permisos a todos los usuarios es la siguiente:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|GRANT tipo_permiso ON &amp;quot;nombre_tabla&amp;quot; TO PUBLIC|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
La sintaxis para revocar permisos a todos los usuarios es la siguiente&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|REVOKE tipo_permiso ON &amp;quot;nombre_tabla&amp;quot; FROM PUBLIC|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
La cláusula PUBLIC no va encerrada entre dobles comillas.&lt;br /&gt;
&lt;br /&gt;
== Conectarse a la base de datos ==&lt;br /&gt;
En cualquier momento puedes conectarte a la base de datos como usuario o como administrador.&lt;br /&gt;
&lt;br /&gt;
Para conectarte como usuario la orden sigue la siguiente sintaxis:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|CONNECT USER &amp;quot;nombre_usuario&amp;quot; PASSWORD &amp;quot;contraseña&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
Para conectarse como administrador, la orden es la siguiente&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|CONNECT USER &amp;quot;sa&amp;quot; PASSWORD &amp;quot;&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
Recordemos que el administrador carece de contraseña.&lt;br /&gt;
&lt;br /&gt;
== Abrir la base de datos con control de usuario ==&lt;br /&gt;
Cuando se abre la base de datos por el procedimiento habitual, siempre se hace utilizando el usuario administrador. Para abrir la base de datos utilizando otro usuario deberemos escribir una macro que solicite el nombre del usuario y su contraseña, y una vez obtenidos, se conecte a la base de datos utilizando esta información.&lt;br /&gt;
&lt;br /&gt;
La macro implementada se asignará al evento '''''Abrir documento''''', ya que este evento se lanza justo cuando se abre el documento y antes de conectar con la base de datos.&lt;br /&gt;
[[Image:OpenOffice.Base.permisos.usuario.02.png|center|link=|class=sombra-p]]&lt;br /&gt;
Veamos un ejemplo sencillo de esta macro que utiliza sentencias '''{{Color|InputBox|Blue|White}}''' en lugar de diálogos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;oobas&amp;quot;&amp;gt;&lt;br /&gt;
Sub ConectaUsuario(Event As Object)&lt;br /&gt;
  Dim sUser As String&lt;br /&gt;
  Dim sPass As String&lt;br /&gt;
  Dim sSQL As String&lt;br /&gt;
  Dim oStat As Object&lt;br /&gt;
&lt;br /&gt;
  With ThisDatabaseDocument.CurrentController&lt;br /&gt;
    If Not .IsConnected Then .Connect&lt;br /&gt;
    oStat=.ActiveConnection.CreateStatement&lt;br /&gt;
  End With&lt;br /&gt;
&lt;br /&gt;
  On Error Goto ErrorConecta&lt;br /&gt;
&lt;br /&gt;
  Do While sUser=&amp;quot;&amp;quot; Or sPass=&amp;quot;&amp;quot;&lt;br /&gt;
    sUser=InputBox(&amp;quot;Usuario&amp;quot;)&lt;br /&gt;
    sPass=InputBox(&amp;quot;Contraseña&amp;quot;)&lt;br /&gt;
    sSQL=&amp;quot;CONNECT USER &amp;quot;&amp;quot;&amp;quot; &amp;amp; sUser &amp;amp; &amp;quot;&amp;quot;&amp;quot; PASSWORD &amp;quot;&amp;quot;&amp;quot; &amp;amp; sPass &amp;amp; &amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    oStat.ExecuteUpdate(sSQL)&lt;br /&gt;
  Loop&lt;br /&gt;
&lt;br /&gt;
  Exit Sub&lt;br /&gt;
&lt;br /&gt;
  ErrorConecta:&lt;br /&gt;
    sUser=&amp;quot;&amp;quot;&lt;br /&gt;
    Resume Next&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{Aviso|imagen=[[image:Señal_Nota.png|link=]]|color=RoyalBlue|texto='''Base''' no distinque mayúsculas de minúsculas ni en el nombre del usuario ni en su contraseña. Aunque tampoco son necesarias las comillas, recomendamos su uso}}&lt;br /&gt;
&lt;br /&gt;
Puede ser buena idea implementar el código necesario para que esta macro se conecte como administrador cuando se indica un determinado nombre de usuario y contraseña.&lt;br /&gt;
&lt;br /&gt;
== Cambiar la contraseña de un usuario ==&lt;br /&gt;
Para cambiar la contraseña de un usuario hay que conectarse como tal y luego utilizar una orden con la siguiente sintaxis:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|SET PASSWORD &amp;quot;nueva_contraseña&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
Si estás conectado como administrador puedes modificar su contraseña con la siguiente sintaxis:&lt;br /&gt;
&lt;br /&gt;
{{Fosfi|ALTER USER &amp;quot;nombre_usuario&amp;quot; SET PASSWORD &amp;quot;nueva_contraseña&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
== Blindar la base de datos ==&lt;br /&gt;
Cada vez que se abre la base de datos es, por defecto, abierta por el administrador '''&amp;lt;nowiki&amp;gt;sa&amp;lt;/nowiki&amp;gt;''', y éste no puede tener contraseña. Por ello es difícil blindar nuestra base de datos.&lt;br /&gt;
&lt;br /&gt;
Una buena idea para blindarla consistiría por un lado en restringir los derechos al administrador por defecto, y por otro, crear un nuevo usuario con contraseña al que asignaremos los derechos de administrador.&lt;br /&gt;
&lt;br /&gt;
Si revocamos todos los permisos del administrador '''&amp;lt;nowiki&amp;gt;sa&amp;lt;/nowiki&amp;gt;''' a excepción de '''SELECT''' nos aseguramos que tan sólo pueda consultar la base de datos, sin que pueda agregar, modificar o borrar nada.&lt;br /&gt;
&lt;br /&gt;
Para conseguir esta blindaje no queda más remedio que realizar un proceso muy peligroso, que podría arruinar la base de datos.&lt;br /&gt;
&lt;br /&gt;
Si quieres intentar este proceso, asegúrate de disponer de varias copias de seguridad para reestablecer la base de datos en caso de que se pierda.&lt;br /&gt;
{{Aviso|imagen=[[image:Señal_Nota.png|link=]]|color=RoyalBlue|texto=Por supuesto, si olvidas el nombre del nuevo administrador, o su contraseña, olvídate de poder realizar cambios en la base de datos, por lo que es pueda ser adecuado que anotes estos datos en lugar seguro}}&lt;br /&gt;
&lt;br /&gt;
El proceso requiere los siguientes pasos:&lt;br /&gt;
&lt;br /&gt;
1.- Verifica que ningún usuario se pueda conectar a tu base de datos mientras estás realizando el proceso.&lt;br /&gt;
&lt;br /&gt;
2.- Crea una o dos copias de tu base de datos en distintos soportes, y verifica que puedes reestablecerla.&lt;br /&gt;
&lt;br /&gt;
3.- Abre la base de datos.&lt;br /&gt;
&lt;br /&gt;
4.- Desde el menú '''''Herramientas &amp;gt; SQL''''' ejecuta las siguientes instrucciones:&lt;br /&gt;
[[Image:OpenOffice.Base.permisos.usuario.00.png|center|link=|class=sombra-p]]&lt;br /&gt;
{{Fosfi|CREATE USER &amp;quot;nuevo_admin&amp;quot; PASSWORD &amp;quot;clave_admin&amp;quot;|centrar=1}}&lt;br /&gt;
{{Fosfi|GRANT DBA TO &amp;quot;nuevo_admin&amp;quot;|centrar=1}}&lt;br /&gt;
{{Fosfi|CONNECT USER &amp;quot;nuevo_admin&amp;quot; PASSWORD &amp;quot;nuevo_admin&amp;quot;|centrar=1}}&lt;br /&gt;
{{Fosfi|REVOKE DBA FROM &amp;quot;sa&amp;quot;|centrar=1}}&lt;br /&gt;
[[Image:OpenOffice.Base.permisos.usuario.01.png|center|link=|class=sombra-p]]&lt;br /&gt;
5.- Desde el menú '''''Herramientas &amp;gt; SQL''''' ejecuta la siguiente orden SQL para cada una de las tablas de la base de datos:&lt;br /&gt;
{{Fosfi|REVOKE ALL ON &amp;quot;nombre_tabla&amp;quot; FROM &amp;quot;sa&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
6.- Desde el menú '''''Herramientas &amp;gt; SQL''''' ejecuta la siguiente orden SQL para cada una de las tablas de la base de datos que quieres que pueda consultar el usuario '''&amp;lt;nowiki&amp;gt;sa&amp;lt;/nowiki&amp;gt;''':&lt;br /&gt;
{{Fosfi|GRANT SELECT ON &amp;quot;nombre_tabla&amp;quot; TO &amp;quot;sa&amp;quot;|centrar=1}}&lt;br /&gt;
&lt;br /&gt;
7.- Utiliza desde '''''Archivo &amp;gt; Guardar como...''''' para guardar los cambios y cierra la base de datos.&lt;br /&gt;
&lt;br /&gt;
La base de datos deberá está lista para usar. En caso contrario, repón la copia de seguridad.&lt;br /&gt;
&lt;br /&gt;
En algunas ocasiones, al abrir de nuevo la base de datos presenta inicialmente un error, pero tras ser recuperada automáticamente funciona correctamente.&lt;br /&gt;
&lt;br /&gt;
En este caso no es necesario la macro que vimos en el punto anterior, ya que por defecto la base de datos se abre con el usuario '''&amp;lt;nowiki&amp;gt;sa&amp;lt;/nowiki&amp;gt;''' al que hemos dejado con permisos limitados.&lt;br /&gt;
&lt;br /&gt;
Este procedimiento puede provocar que a veces no se elimine automáticamente el archivo '''LCK''' (que gestiona los bloqueos de registros) al cerrar la base de datos. Sin embargo, es un problema menor que no impide volver a abrirla. &lt;br /&gt;
&lt;br /&gt;
== Créditos y reconocimientos  ==&lt;br /&gt;
Este minitutorial se basa en una pregunta formulada en el {{Enlace|http://forum.openoffice.org/es/forum/viewtopic.php?f·31&amp;amp;t·3549&amp;amp;p·11812|Foro Oficial de Apache OpenOffice en Español}} y su correspondiente respuesta realizada por el usuario '''Cascabel''', al que agradecemos compartir con todos nosotros sus conocimientos. &lt;br /&gt;
{{Pie|cat=Base|subcat=}}&lt;/div&gt;</summary>
		<author><name>Salva</name></author>	</entry>

	</feed>