CONCESIÓN de SQL Server

Concesion De Sql Server



En este artículo, comprenderá cómo usar la declaración GRANT en SQL Server para otorgar permisos en un asegurable a una entidad de seguridad.

SQL Server Securable y Principal

Un asegurable se refiere a los recursos a los que el sistema de autorización del Motor de base de datos de SQL Server controla el acceso. Un ejemplo sería una tabla de base de datos.

Un principal se refiere a cualquier entidad que requiere acceso a cualquier recurso de SQL Server. Por ejemplo, un usuario que solicita permisos en una tabla es un principal.







Declaración de concesión de SQL Server

A continuación se muestra la sintaxis del comando GRANT en SQL Server:



OTORGAR permisos
ON securable TO principal;

Debe especificar el permiso que desea asignar al principal como una lista separada por comas.



La palabra clave ON le permite especificar el asegurable en el que se aplican los permisos. Finalmente, la palabra clave TO le permite establecer el principal de destino.





Por ejemplo, la creación de un usuario mediante la instrucción CREATE USER no define los permisos para ese usuario. Por lo tanto, es esencial usar la declaración GRANT para establecer los permisos para ese usuario.

Tomemos un ejemplo.



Crear ejemplo de inicio de sesión

Comencemos creando un inicio de sesión de muestra con fines ilustrativos. La consulta es la siguiente:

crear inicio de sesión linuxhint
con contraseña='contraseña';

El comando anterior debería crear un usuario con el nombre de usuario linuxhint y la contraseña especificada.

Crear base de datos de muestra

Podemos crear una base de datos donde residirá el usuario una vez que hayamos definido un inicio de sesión. Las consultas son las que se muestran:

descartar base de datos si existe resolver;

crear resolución de base de datos;

usar resolución;

soltar tabla si existen entradas;

crear entradas de tabla (
id int no nulo identidad (1,
1) clave principal,
nombre_servidor varchar(50),
server_address varchar (255) no es nulo,
compresión_método varchar (100) por defecto 'ninguno',
size_on_disk flotante no nulo,
flotador tamaño_comprimido,
total_records int no nulo,
init_date fecha
);
insertar
dentro
ENTRADAS(nombre_servidor,
dirección del servidor,
método de compresión,
tamaño_en_disco,
tamaño_comprimido,
registros_totales,
fecha_inicial)
valores
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000,'2022-11-11'),
('Búsqueda elástica','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Crear un usuario para el inicio de sesión

Una vez que hemos creado la base de datos y la tabla, podemos crear un usuario para el inicio de sesión de linuxhint como:

usar resolución
crear usuario linuxhint
para iniciar sesión linuxhint;

Iniciar sesión como nuevo usuario

A continuación, iniciemos sesión como el usuario recién creado. El comando es como se muestra:

setuser 'linuxhint';

Una vez que haya iniciado sesión, podemos intentar ver las tablas ejecutando el comando de selección:

seleccione * de las entradas;

Ejecutar la consulta anterior debería devolver un error:

Msj 229, Nivel 14, Estado 5, Línea 379
El permiso SELECT fue denegado en el objeto 'entradas', base de datos 'resolver', esquema 'dbo'.

Esto se debe a que el usuario de linuxhint no tiene ningún permiso en la base de datos, incluidos los permisos SELECT.

Otorgar permiso al usuario

Necesitamos otorgar los permisos SELECT para permitir que el usuario vea la información almacenada en las tablas.

Para eso, debe iniciar sesión con la cuenta administrativa de SQL Server.

A continuación, ejecute la consulta como:

otorgar selección en las entradas a linuxhint;

Una vez ejecutado, inicie sesión como usuario de linuxhint y use la instrucción SELECT.

seleccione * de las entradas;

En este caso, el comando devuelve la tabla ya que el usuario tiene permisos SELECT

También puede asignar otro permiso al usuario, como insertar y eliminar como:

otorgar insertar, eliminar en las entradas a linuxhint;

en este caso, el usuario de linuxhint debe tener los permisos SELECCIONAR, INSERTAR y ELIMINAR en la tabla de entradas.

Conclusión

En esta publicación, exploramos el uso del comando GRANT en SQL Server. El comando le permite asignar permisos a un principal determinado.