Escolar Documentos
Profissional Documentos
Cultura Documentos
SERVER
S
O
T
A
D
ROLE
E
D
E
S DE
S
A
B
L SE
E
D
S
RVID
E
L
O
OR
R
INTEGRANTES:
AUTENTIFICACIN DE
USUARIOS
ACCESO A LOS RECURSOS
CREACIN DE USUARIOS
Un usuario es una entidad de seguridad
de la base de datos.Los inicios de
sesin deben estar asignados a un
usuario de base de datos para poder
conectarse a una base de datos
user_name
LOGIN login_name
CERTIFICATE cert_name
ASYMMETRIC KEY asym_key_name
WITH DEFAULT_SCHEMA =schema_name
WITHOUT LOGIN
EJEMPLOS
predeterminado
En el siguiente ejemplo, primero se crea un inicio de sesin de servidor
denominado WanidaBenshoof con una contrasea y, a continuacin, se crea el
usuario de base de datos Wanida correspondiente con el esquema
predeterminado Marketing.
CREATE LOGIN WanidaBenshoof
WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks2008R2;
CREATE USER Wanida FOR LOGIN WanidaBenshoof
WITH DEFAULT_SCHEMA = Marketing;
GO
CREACIN DE LOGIN
Crea un inicio de sesin del
Motor de base de datos para
SQL Server y Windows Azure
SQL Database
login_name
PASSWORD ='password'
PASSWORD =hashed_password
HASHED
MUST_CHANGE
CREDENTIAL =credential_name
SID = sid
<option_list1> ::=
PASSWORD = { 'password' | hashed_password
HASHED } [ MUST_CHANGE ]
[ , <option_list2> [ ,... ] ]
<option_list2> ::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
| CREDENTIAL = credential_name
<sources> ::=
WINDOWS [ WITH <windows_options>[ ,... ] ]
| CERTIFICATE certname
| ASYMMETRIC KEY asym_key_name
<windows_options> ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
EJEMPLOS
GO
A partir de SQL Server 2012, puede crear roles de servidor definidos por el usuario y agregarles permisos de nivel de servidor.
Puede agregar entidades de seguridad a nivel de servidor (inicios de sesin de SQL Server, cuentas de Windows y grupos de
Windows) a los roles de nivel de servidor.
Cada miembro de un rol fijo de servidor puede agregar otros inicios de sesin a ese mismo rol. Los miembros de roles de servidor
definidos por el usuario no pueden agregar otras entidades de seguridad de servidor al rol.
DESCRIPCION
SERVIDOR
Sysadmin
Los miembros del rol fijo de servidor sysadmin pueden realizar cualquier actividad en el servidor.
Serveradmin
Los miembros del rol fijo de servidor serveradmin pueden cambiar las opciones de configuracin
Securityadmin
Tambin pueden administrar los permisos de nivel de base de datos GRANT, DENY y REVOKE si
tienen acceso a una base de datos.
Asimismo, pueden restablecer las contraseas para los inicios de sesin de SQL Server.
Processadmin
Los miembros del rol fijo de servidor processadmin pueden finalizar los procesos que se ejecuten
Setupadmin
Bulkadmin
Management Studio).
Los miembros del rol fijo de servidor bulkadmin pueden ejecutar la instruccin BULK INSERT.
Diskadmin
dbcreator
Los miembros del rol fijo de servidor dbcreator pueden crear, modificar, quitar y restaurar cualquier
Public
base de datos.
Cada inicio de sesin de SQL Server pertenece al rol de servidor public.Cuando a una entidad de
seguridad de servidor no se le han concedido ni denegado permisos especficos para un objeto
protegible, el usuario hereda los permisos concedidos al rol public para ese objeto.
Sin embargo, solo los miembros del rol de base de datos db_ownerpueden agregar miembros al rol fijo de base de
datos db_owner.
Tambin hay algunos roles fijos de base de datos con fines especiales en la base de datos msdb.
DESCRIPCION
Los miembros del rol fijo de base de datosdb_ownerpueden realizar todas las
actividades de configuracin y mantenimiento en la base de datos y tambin pueden
db_securityadmin
db_accessadmin
db_backupoperator
db_ddladmin
db_datawriter
db_datareader
Los miembros del rol fijo de base de datosdb_datareaderpueden leer todos los datos de
todas las tablas de usuario.
db_denydatawriter
db_denydatareader
Los miembros del rol fijo de base de datosdb_denydatareaderno pueden leer datos de
las tablas de usuario dentro de una base de datos.
GRANT
Crear prueba del usuario
USE TestDB;
GO
GO
GO
GO
GO
EXEC
sp_addrolemember
@membername = 'TestUser';
GO
@rolename
'TestRole',
GO
CREATE TABLE Test.TestTable2 (TableID int);
GO
PRUEBA DE CONSULTAS
Una vez hecho esto, vamos a usar dos " test harnesses " para poner a prueba la
capacidad del usuario para acceder a las tablas en cuestin. Tenga en cuenta que
con los permisos actuales, el usuario slo debe ser capaz de emitir un SELECT en
contra de la primera tabla.
-- Test Harness to verify how permissions work for Test.TestTable.
EXECUTE AS USER = 'TestUser';
GO
SELECT * FROM Test.TestTable;
GO
REVERT;
GO
-- Test Harness to verify how permissions work for Test.TestTable2.
EXECUTE AS USER = 'TestUser';
GO
-- This should fail initially, as there is no permission for this table
SELECT * FROM Test.TestTable2;
GO
REVERT;
GO
PERMISOS
---Consulta para ver los permisos aplicables
SELECT dp.class_desc, s.name AS 'Schema', o.name AS 'Object', dp.permission_name,
dp.state_desc, prin.[name] AS 'User'
FROM sys.database_permissions dp
JOIN sys.database_principals prin
ON dp.grantee_principal_id = prin.principal_id
JOIN sys.objects o
ON dp.major_id = o.object_id
JOIN sys.schemas s
ON o.schema_id = s.schema_id
WHERE LEFT(o.name, 9) = 'TestTable'
AND dp.class_desc = 'OBJECT_OR_COLUMN'
UNION ALL
SELECT dp.class_desc, s.name AS 'Schema', '-----' AS 'Object', dp.permission_name,
dp.state_desc, prin.[name] AS 'User'
FROM sys.database_permissions dp
JOIN sys.database_principals prin
ON dp.grantee_principal_id = prin.principal_id
JOIN sys.schemas s
ON dp.major_id = s.schema_id
WHERE dp.class_desc = 'SCHEMA';
REMOKE
REVOKE deshace un permiso, ya sea un GRANT o DENY. Si emite el siguiente
REVOKE y luego comprueba los permisos, se le nota que la concesin que estaba
presente para Test.Table1. Despus de emitir la orden de revocacin, vuelva a
ejecutar las consultas del arns de pruebas anteriores en contra de esa mesa y vers
que el usuario no puede consultar la tabla por ms tiempo.
-- Deshacer el permiso utilizando REVOKE;
REVOKE SELECT ON OBJECT::Test.TestTable FROM TestRole;
Recuerde, REVOKE no cancela una subvencin. No bloquea una subvencin. Se
elimina un permiso en el nivel especificado a la entidad de seguridad (usuario o
rol) especificado. Es por eso que decimos que deshace un permiso.
DENY
Denegar el acceso bloques. DENY triunfa sobre otro acceso. Si un usuario tiene tanto un GRANT y un DENY sobre un objeto dado,
por cualquier medio, DENY tendr efecto. Por ejemplo, consideremos el caso de un SELECT GRANT en el esquema de prueba.
Esto dara a la capacidad de emitir un SELECT contra cualquier tabla o vista en el esquema de prueba. Intenta simplemente
aplicando este permiso, vuelva a comprobar el permiso y, a continuacin, las pruebas de acceso del usuario al tanto Test.TestTable y
Test.TestTable2. Usted ver el usuario puede ahora emitir una consulta SELECT contra ambas tablas.
A veces, si usted busca permisos explcitos contra una tabla o un procedimiento almacenado, usted no lo vea. Sin embargo, el
usuario puede ejecutar el SELECT o EXECUTE respectivamente. Si este es el caso, entonces el permiso est en una asegurable que
contiene el objeto. Eso es lo que estamos haciendo aqu. El esquema de prueba contiene las tablas TestTable y TestTable2. As que si
un usuario tiene permisos SELECT contra el esquema de prueba, tambin tiene el permiso SELECT en las tablas y vistas en el
esquema de prueba.
A
R
I
C
S
A