Compartir a través de


Concesión de permisos de T-SQL para Almacenamiento de datos paralelos

Concesión de permisos de T-SQL para operaciones de base de datos en Almacenamiento de datos paralelos.

Concesión de permisos para enviar consultas de base de datos

En esta sección se describe cómo conceder permisos a los roles de base de datos y a los usuarios para consultar datos en el dispositivo PDW de SQL Server.

Las instrucciones usadas para conceder permisos para consultar datos dependen del ámbito de acceso deseado. Las siguientes instrucciones SQL crean un inicio de sesión denominado KimAbercrombie que puede acceder al dispositivo, crean un usuario de base de datos denominado KimAbercrombie en la base de datos AdventureWorksPDW2012, crean un rol de base de datos denominado PDWQueryData, agrega el uso de KimAbercrombie al rol PDWQueryData y, después, muestran opciones para conceder acceso a consultas en función de si el acceso se concede en el nivel de objeto o de base de datos.

USE master;  
GO  
  
CREATE LOGIN KimAbercrombie WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,  
CHECK_EXPIRATION = ON,  
CHECK_POLICY = ON;  
GO  
  
USE AdventureWorksPDW2012;  
GO  
  
CREATE USER KimAbercrombie;  
GO  
  
CREATE ROLE PDWQueryData;  
GO  
  
EXEC sp_addrolemember 'PDWQueryData', 'KimAbercrombie'  
GO  
  
-- If the permission is granted against a table or view only, use this syntax:  
GRANT SELECT ON OBJECT::AdventureWorksPDW2012..DimEmployee TO PDWQueryData;  
GO  
  
-- If the permission is granted for the database, use this syntax:  
GRANT SELECT ON DATABASE::AdventureWorksPDW2012 TO PDWQueryData;  
GO  
  
-- If KimAbercrombie is the only user that needs to access a table, use this syntax:  
GRANT SELECT ON OBJECT::AdventureWorksPDW2012..DimEmployee TO KimAbercrombie;  
GO  

Concesión de permisos para usar la consola de administración

En esta sección se describe cómo conceder permisos a los inicios de sesión para usar la consola de administración.

Uso de la consola de administración

Para usar la consola de administración, un inicio de sesión necesita el permiso VIEW SERVER STATE de nivel de servidor. La siguiente instrucción SQL concede el permiso VIEW SERVER STATE al inicio de sesión KimAbercrombie para que Kim pueda usar la consola de administración a fin de supervisar el dispositivo de PWD de SQL Server.

USE master;  
GO  
GRANT VIEW SERVER STATE TO KimAbercrombie;  
GO  

Eliminación de sesiones

A fin de conceder a un inicio de sesión el permiso para eliminar sesiones, conceda el permiso ALTER ANY CONNECTION de la siguiente manera:

GRANT ALTER ANY CONNECTION TO KimAbercrombie;  

Concesión de permisos para cargar datos

En esta sección se describe cómo conceder permisos a los roles de base de datos y a los usuarios de base de datos para cargar datos en la aplicación PDW de SQL Server.

En el script siguiente se muestran los permisos necesarios para cada opción de carga. Puede modificarlo para ajustarlo a sus necesidades específicas.

-- Create server login for the examples that follow.  
USE master;  
CREATE LOGIN BI_ETLUser WITH PASSWORD = '<password>';  
  
--Grant BULK Load permissions   
GRANT ADMINISTER BULK OPERATIONS TO BI_ETLUser;  
  
--Grant Staging database permissions  
USE stagedb;  
CREATE USER BI_ETLUser for login BI_ETLUser;  
EXEC sp_addrolemember 'db_datareader','BI_ETLUser';  
EXEC sp_addrolemember 'db_datawriter','BI_ETLUser';  
EXEC sp_addrolemember 'db_ddladmin','BI_ETLUser';  
  
-- The CREATE TABLE permission is required for the database hosting the temporary table.  
-- This may be the staging database (if specified) or destination database.   
-- The CREATE permission is not required if loading in fastappend mode.  
GRANT CREATE TABLE ON database::stagedb TO BI_ETLUser;  
  
-- If loading in append or fastappend mode, the INSERT permission is required on the destination table.  
GRANT INSERT ON database::stagedb TO BI_ETLUser;  
  
-- If loading in reload mode, the INSERT and DELETE permissions are required on the destination table.  
GRANT INSERT ON database::stagedb TO BI_ETLUser;  
GRANT DELETE ON database::stagedb TO BI_ETLUser;  
  
-- If loading in upsert mode, the INSERT and UPDATE permissions are required on the destination table.  
GRANT INSERT ON database::stagedb TO BI_ETLUser;  
GRANT UPDATE ON database::stagedb TO BI_ETLUser;  
  
-- Destination DB  
USE tpch_1gb;  
CREATE USER BI_ETLUser FOR LOGIN BI_ETLUser;  
EXEC sp_addrolemember 'db_datareader','BI_ETLUser';  
EXEC sp_addrolemember 'db_datawriter','BI_ETLUser';  

Concesión de permisos para copiar datos fuera del dispositivo

En esta sección se describe cómo conceder permisos a un rol de usuario o de base de datos para copiar datos fuera del dispositivo PDW de SQL Server.

Para mover datos a otra ubicación, se necesita el permiso SELECT en la tabla que contenga los datos que se van a mover.

Si el destino de los datos es otro PDW de SQL Server, el usuario debe tener el permiso CREATE TABLE en el destino y el permiso ALTER SCHEMA en el esquema que contendrá la tabla.

Concesión de permisos para administrar bases de datos

En esta sección se describe cómo conceder permisos a un rol de usuario o de base de datos para administrar una base de datos en el dispositivo PDW de SQL Server.

En algunas situaciones, una empresa asigna un administrador para una base de datos. El administrador controla el acceso que tienen otros inicios de sesión a la base de datos, así como los datos y los objetos de la base de datos. Para administrar todos los objetos, roles y usuarios de una base de datos, conceda al usuario el permiso CONTROL en la base de datos. La siguiente instrucción concede el permiso CONTROL en la base de datos AdventureWorksPDW2012 al usuario KimAbercrombie.

USE AdventureWorksPDW2012;  
GO  
GRANT CONTROL ON DATABASE:: AdventureWorksPDW2012 TO KimAbercrombie;  

A fin de conceder a alguien el permiso para controlar todas las bases de datos del dispositivo, conceda el permiso ALTER ANY DATABASE en la base de datos maestra.

Concesión de permisos para administrar inicios de sesión, usuarios y roles de base de datos

En esta sección se describe cómo conceder permisos para administrar inicios de sesión, usuarios de base de datos y roles de base de datos.

Concesión de permisos para administrar inicios de sesión

Adición o administración de inicios de sesión

Las siguientes instrucciones SQL crean un inicio de sesión denominado KimAbercrombie que puede crear inicios de sesión mediante la instrucción CREATE LOGIN y modificar los existentes mediante la instrucción ALTER LOGIN.

El permiso ALTER ANY LOGIN concede la capacidad de crear inicios de sesión y quitar los existentes. Una vez que exista un inicio de sesión, se puede administrar mediante inicios de sesión con el permiso ALTER ANY LOGIN o el permiso ALTER en ese inicio de sesión. Un inicio de sesión puede cambiar la contraseña y la base de datos predeterminada para su propio inicio de sesión.

CREATE LOGIN KimAbercrombie   
WITH PASSWORD = '<password>' MUST_CHANGE,  
CHECK_EXPIRATION = ON,  
CHECK_POLICY = ON;  
GO  
  
GRANT ALTER ANY LOGIN TO KimAbercrombie;  

Concesión de permisos para administrar sesiones de inicio de sesión

Para tener la capacidad de ver todas las sesiones en el servidor, se necesita el permiso VIEW SERVER STATE. La capacidad de finalizar las sesiones de otros inicios de sesión necesita el permiso ALTER ANY CONNECTION. En el ejemplo siguiente se usa el inicio de sesión KimAbercrombie creado antes.

-- Grant permissions to view sessions and queries  
GRANT VIEW SERVER STATE TO KimAbercrombie;  
  
-- Grant permission to end sessions  
GRANT ALTER ANY CONNECTION TO KimAbercrombie;  

Concesión de permisos para administrar usuarios de base de datos

Para la creación y eliminación de usuarios de base de datos se necesita el permiso ALTER ANY USER. Para la administración de usuarios existentes se necesita el permiso ALTER ANY USER o el permiso ALTER en ese usuario. En el ejemplo siguiente se usa el inicio de sesión KimAbercrombie creado antes.

-- Create a user  
USE AdventureWorksPDW2012;  
GO  
CREATE USER KimAbercrombie;  
  
-- Grant permissions to create and drop users   
GRANT ALTER ANY USER TO KimAbercrombie;  

Concesión de permiso para administrar roles de base de datos

Para la creación y eliminación de roles de base de datos definidos por el usuario se necesita el permiso ALTER ANY ROLE. En el ejemplo siguiente se usa el inicio de sesión KimAbercrombie y el usuario creados antes.

USE AdventureWorksPDW2012;  
GO  
-- Grant permissions to create and drop roles  
GRANT ALTER ANY ROLE TO KimAbercrombie;  

Gráficos de permisos de inicio de sesión, usuario y rol

Los gráficos siguientes pueden resultar confusos, pero muestran cómo los permisos de nivel superior (como CONTROL) incluyen permisos más granulares que se pueden conceder por separado (como ALTER). Es un procedimiento recomendado conceder siempre la menor cantidad de permisos para que alguien complete las tareas que necesita. Para ello, conceda permisos más específicos, en lugar de los permisos de nivel superior.

Permisos de inicio de sesión:

Permisos de inicio de sesión de seguridad de APS

Permisos de usuario:

Permisos de seguridad y usuario de APS

Permisos de rol:

Permisos de roles y seguridad de APS

Concesión de permisos para supervisar el dispositivo

El dispositivo PDW de SQL Server se puede supervisar mediante la consola de administración o las vistas del sistema PDW de SQL Server. Los inicios de sesión necesitan el permiso de nivel de servidor VIEW SERVER STATE para supervisar el dispositivo. Los inicios de sesión necesitan el permiso ALTER ANY CONNECTION para finalizar las conexiones mediante la Consola de administración, o bien el comando KILL. Para obtener información sobre los permisos necesarios para usar la consola de administración, vea Concesión de permisos para usar la consola de administración (PDW de SQL Server).

Concesión de permiso para supervisar el dispositivo mediante vistas del sistema

Las siguientes instrucciones SQL crean un inicio de sesión denominado monitor_login y conceden el permiso VIEW SERVER STATE al inicio de sesión monitor_login.

USE master;  
GO  
CREATE LOGIN monitor_login WITH PASSWORD='<password>';  
GRANT VIEW SERVER STATE TO monitor_login;  
GO  

Concesión de permiso para supervisar el dispositivo mediante vistas del sistema y para finalizar conexiones

Las siguientes instrucciones SQL crean un inicio de sesión denominado monitor_and_terminate_login y conceden los permisos VIEW SERVER STATE y ALTER ANY CONNECTION al inicio de sesión monitor_and_terminate_login.

USE master;  
GO  
CREATE LOGIN monitor_and_terminate_login WITH PASSWORD='<password>';   
GRANT VIEW SERVER STATE TO monitor_and_terminate_login;   
GRANT ALTER ANY CONNECTION TO monitor_and_terminate_login;  
GO  

Para crear inicios de sesión de administrador, vea Roles fijos de servidor.

Vea también

CREATE LOGIN
CREATE USER
CREATE ROLE
Cargar