Ejemplos de seguridad de nivel de fila postgresql

Ejemplos de seguridad de nivel de fila postgresql

Postgresql ha sido un sistema de base de datos ampliamente utilizado en todo el mundo y está altamente seguro. Postgresql ha venido con los dos tipos de valores, e.gramo. nivel de columna y nivel de fila. Nuestro tema principal es la seguridad de nivel de fila en PostgreSQL. Se dice que la seguridad a nivel de fila es una herramienta simple y muy necesaria en la seguridad PostgreSQL. Se ha utilizado para controlar el acceso de los usuarios a ciertas tablas y registros basados ​​en algunas políticas. Al aplicar la seguridad de nivel de fila, restringiremos a los usuarios a ver solo o manipular los registros de la tabla que contienen los datos sobre ellos en lugar de realizar cambios en los registros de otros usuarios.

Debe abrir el shell SQL para PostgreSQL 13 desde la barra de inicio de Windows 10. Después de abrirlo, obtendrá la pantalla negra del shell SQL. Agregue el nombre del servidor, el nombre de la base de datos, el número de puerto, el nombre de usuario y la contraseña cuando se le solicite uno por uno. El shell SQL estará listo para su uso posterior.

El usuario de la base de datos "Post -put"Ya es un superusador de su sistema. Si no ha iniciado sesión desde un superusor, debe iniciar sesión desde él. El método para iniciar sesión desde una cuenta de Superuser es utilizando el comando indicado a continuación en el shell que tiene el signo "\ c" con el nombre de una base de datos que se utilizará, e.gramo. Postgres, junto con el nombre de un superusador, E.gramo. Post -put. Puede requerir la contraseña para una cuenta si aún no se registra.

Crear mesa:

Debe crear una nueva tabla dentro de la base de datos y la base de datos "Postgres". Entonces, hemos usado el CREAR MESA consulta para crear una tabla "prueba"Con algunas columnas como se muestra.

Después de crear una tabla "prueba", Hemos insertado tres registros para 3 usuarios diferentes, E.gramo. AQSA, Raza y Rimsha, a través del "INSERTAR EN"Instrucción en el caparazón.

La tabla y sus registros se pueden ver en la pantalla de shell SQL utilizando el SELECCIONAR consulta.

Crear usuarios:

Hemos estado trabajando en SQL Shell en la prueba de tabla con el Superuser "Post -put", Pero tenemos que crear otros usuarios como se menciona en la tabla, e.gramo. AQSA, Raza y Rimsha. Entonces, hemos usado el CREAR USUARIO Comandar hacerlo al asignar la contraseña. Después de eso, hemos otorgado SELECCIONAR privilegios de todos estos usuarios después de la creación.

Cuando hemos usado los usuarios recién creados para obtener los registros de una tabla "prueba", La salida muestra que un usuario puede acceder fácilmente a todas las filas desde una tabla en lugar de una fila que tiene su nombre. La siguiente salida muestra la salida para acceder a la prueba de la tabla con un usuario "AQSA".

La salida debajo demuestra la salida para acceder a la prueba de tabla con un usuario "Fusil".

La siguiente salida es para una prueba de tabla con un usuario "rimsha".

Crear política:

El propósito de la seguridad a nivel de fila es restringir a los usuarios solo para obtener los registros que tienen la información sobre sí mismos. Queremos que la seguridad de nivel de fila para los usuarios no obtenga los registros de otros usuarios. Comencemos por iniciar sesión desde el superusador "Post -put"En el shell SQL.

Después de iniciar sesión, hemos utilizado la instrucción Crear política que se muestra a continuación para crear una política llamada "nuevo" en la mesa "prueba". Hemos usado el "TODO"Palabra clave aquí que representa todos los privilegios, e.gramo. insertar, actualizar, modificar, etc. Puede hacerlo particular agregando un inserto, seleccionar, actualizar o cualquier palabra clave. El papel público ha estado indicando todos los roles. Puede especificar el usuario o rol aquí también. Hemos estado usando el "USANDO"Expresión aquí. Esto comparará el nombre de usuario actualmente registrado con la tabla "Prueba" en la columna "Nombre".

Habilitar la seguridad del nivel de fila:

Solo crear la política y aplicarse a roles y tablas no es suficiente para obtener un cambio. Debe habilitar la seguridad de nivel de fila en la tabla "prueba" que tiene un conjunto de políticas justo antes. Entonces, hemos usado el Superuser "Post -put"Para habilitar la seguridad de nivel de fila en una mesa"prueba" con el Alterar la mesa Comando que se muestra en la captura de pantalla adjunta.

Como hemos iniciado sesión actualmente desde el superusador "Post -put", El comando "SELECCIONAR"Junto con la palabra clave"usuario actual"Está mostrando el nombre de usuario en la salida. Al acceder a la tabla con el comando seleccionar mientras se registra desde el superusor, muestra todos los registros de una tabla "prueba". Esto significa que la política y la seguridad del nivel de fila no afecta a Superuser.

Ahora, iniciaremos sesión en los nuevos roles creados hace un tiempo. Hemos iniciado sesión desde el usuario "AQSA"Y verificó al usuario iniciado actualmente. Vuelve "AQSA"Como usuario actual. Al buscar la mesa "prueba"Registros por un comando SELECT, devuelve las filas solo pertenecían al nombre de usuario"AQSA"Emparejado con una columna" nombre "en la tabla. Todas las otras filas han sido aseguradas y no pueden ser vistas por un usuario "AQSA".

Inicie sesión en el otro usuario ",Fusil"Desde el terminal y verifique al usuario actual. Regresó "Fusil"Como usuario actual. La salida para el comando select muestra solo el registro para un usuario "Fusil" de la mesa "prueba".

La seguridad de nivel de fila ha funcionado igual en el usuario "rimsha"Según la imagen de salida a continuación.

Seguridad del nivel de fila de omisión:

Los permisos de omisión se pueden utilizar para anular la seguridad de nivel de fila por parte de algunos superusores y otros usuarios privilegiados. El usuario que tiene privilegios de seguridad de nivel de fila de derivación puede anular la seguridad de nivel de fila para cualquier tabla y acceder a los registros de otros usuarios también. Entonces, hemos iniciado sesión desde la cuenta de Superuser dentro del terminal primero.

Después de eso, hemos alterado los derechos de un usuario "Fusil"Por un comando de usuario alter aplicado en él. Hemos asignado el usuario "Raza", los privilegios de evitar la seguridad de nivel de fila por "bypassrls"Mencionado en la consulta de usuario alter como se muestra.

Inicie sesión desde el usuario "Fusil"Desde el caparazón. Puede ver que el usuario "Raza" ahora puede superar la política de seguridad de nivel de fila y puede ver y modificar fácilmente los registros de todos los demás usuarios de la tabla "prueba"A través de la consulta de selección.

Política de caída:

Inicie sesión desde el Superuser una vez más para soltar una política "nuevo"Que se ha aplicado en la tabla" prueba ".

El comando de política de caída se ha utilizado en el shell para soltar una política llamada "nuevo"De la tabla" prueba ".

Después de lanzar una política, hemos iniciado sesión desde uno de los usuarios para verificar si todavía funciona o no. Hemos descubierto que gotear una política no podía cambiar al usuario "AQSA"U otros para obtener los registros de una mesa"prueba". Esto se debe a que aún no hemos deshabilitado la seguridad de nivel de fila sobre la mesa.

Desactivar la seguridad del nivel de fila:

Para deshabilitar la seguridad de nivel de fila en una mesa "prueba", Inicie sesión como un superusor y use la consulta que se muestra en el SNAP a continuación.

Después de iniciar sesión en el otro usuario, podrá ver y modificar los registros fácilmente.

Conclusión:

Este tutorial contiene una breve demostración de la seguridad de nivel de fila utilizada para restringir a los usuarios al acceso a datos con fines de seguridad. La seguridad a nivel de fila se ha logrado creando usuarios, políticas y luego habilitando la seguridad. El artículo también contiene la implementación sobre la caída de una política y la desactivación de la seguridad de nivel de fila. Por lo tanto, este artículo es un paquete adicional para que nuestros usuarios hagan todo, desde habilitar hasta deshabilitar la seguridad de nivel de fila dentro de una sola toma.