Bases de Datos 1
Prof. Daniel Obando Fuentes
USUARIOS EN SQL SERVER
• Para conectarse a una base de datos SQL Server se requiere un usuario
• Cada usuario tiene distintos niveles de permisos
• Los permisos brindan la capacidad a un usuario de
• acceder objetos específicos de una base de datos
• Leer sus propiedades y valores
• Modificar sus propiedades y valores
• Modificar su estructura
• Eliminarlos o crear nuevos objetos
TÉRMINOS
•
Principal: Entidades que pueden solicitar recursos de SQL Server. Tipos:
•
Windows domain logins
•
Windows local logins
•
SQL Server logins
•
Windows groups
•
Database roles
•
Server roles
•
Application roles
•
Securables: Cualquier objeto de una BD que puede ser asegurado mediante permisos.
•
Permisos: Definen el acceso a los securables. Son conjuntos de niveles de acceso. Ej:
•
CONTROL
•
ALTER
•
TAKE OWNERSHIP
•
IMPERSONATE
•
CREATE
•
VIEW DEFINITION
TÉRMINOS
• Esquemas: Grupos lógicos de entidades del SQL Server. También son securables. Pueden ayudar a evitar
colisiones de nombres.
•
db_accessadmin
•
db_backupoperator
•
db_datareader
•
db_datawriter
•
db_ddladmin
•
db_denydatareader
•
db_denydatawriter
•
db_owner
•
db_securityadmin]
•
Dbo
•
Guest
•
INFORMATION_SCHEMA
•
sys
TÉRMINOS
Server Roles: Agrupan
permisos para facilitar
su manejo y asignación.
Roles fijos del servidor
Descripción
sysadmin
Permisos totales
serveradmin
Pueden cambiar configuraciones sel
servidor y apagarlo.
securityadmin
Manejan logins y sus propiedades. Pueden
ejecutar GRANT, DENY, y REVOKE de
permisos a nivel de servidor y de base de
datos. Pueden hacer reset de passwords.
processadmin
Pueden terminar procesos.
setupadmin
Pueden agregar y eliminar servidores.
bulkadmin
Pueden ejecutar BULK INSERT.
diskadmin
Puede manejar los archivos en el disco.
dbcreator
Pueden ejecutar create, alter, drop, y restore en
cualquier base de datos.
public
Grupo default. Pueden acceder a todos los
objetos públicos en el servidor.
TÉRMINOS
• Login: da acceso a un servidor. puede ser asociado con
varios usuarios (uno por base de datos).
• User: Da acceso a una base de datos determinada.
SEPARACIÓN USUARIO-ESQUEMA
• Desde SQL-Server 2005 las tablas
ya no pertenecen a usuarios
• Las tablas pertenecen a un
esquema y el esquema pertenece
a un usuario.
• Un usuario puede tener varios
esquemas, lo que implica que los
objetos de la base de datos puede
ser expuestos para que sean
consultados sin necesidad de que
deban ser modificados.
USE tempdb
GO
CREATE LOGIN u1 WITH PASSWORD = 'Mdfjd$sakj943857l7sdfh##30'
CREATE USER u1 WITH DEFAULT_SCHEMA = u1
GO
GRANT CREATE TABLE to u1
GO
EXECUTE AS user = 'u1'
GO
CREATE TABLE t1(c1 int)
GO
revert
GO
SELECT user_name(uid) , * FROM sysobjects WHERE name = 't1'
GO
VERIFICACIÓN DE PERMISOS
• Acceso es concedido o denegado en el objeto
• Acceso es concedido o denegado en el objeto contenedor
• Acceso es concedido o denegado en el esquema
• Acceso es concedido o denegado en la base de datos.
SEGURIDAD
• Tener usuarios con permisos globales para desarrollo.
• Tener usuarios con permisos limitados para la puesta en producción.
• Las aplicaciones NO DEBEN modificar la estructura de la base de datos. Por
ende, los usuarios que usen las aplicaciones NO DEBEN tener permisos para
ello.
• Dar permisos a los usuarios solo para los objetos que necesiten acceder.
• Si una app debe acceder una tabla solamente para obtener datos de esta, el
usuario de la aplicación no debe tener permisos de escritura sobre la misma.
• Nunca se deben utilizer usuarios de Windows Authentication, ya que si
Windows es vulnerado las bases de datos correrían peligro.
CREANDO UN USUARIO PARA UNA APP
CREANDO UN ROL
• Server > Security > Server
Roles > Clic Derecho > New
Server Role
• En Members se pueden
agregar Logins al Rol
• No es un paso requerido,
se puede usar el rol Public
CREAR UN LOGIN
•
Server > Security > Logins > Clic
Derecho > New Login
•
Ingresar Login Name
•
Ingresar Password
•
Asegurarse que Enforce
password policy no esté
marcado
•
Seleccionar la Default database
CREAR UN USUARIO
•
Ir a la bd a la que se quiere agregar el
usuario
•
Security > Users > Clic derecho > New
user
•
Seleccionar SQL user with Login
•
Ingrese username
•
Seleccione el Login name que creó
•
Ir a Owned Schemas y seleccionar los
esquemas que manejará el usuario
•
•
db_datareader, db_datawriter, db_owner
Ir a Membership y seleccionar los roles
del usuario
•
db_datareader, db_datawriter, db_owner
Descargar

Presentación de PowerPoint