Bases de Datos 1 Prof. Daniel Obando Fuentes. USUARIOS EN SQL SERVER Para conectarse a una base de...

13
Bases de Datos 1 Prof. Daniel Obando Fuentes

Transcript of Bases de Datos 1 Prof. Daniel Obando Fuentes. USUARIOS EN SQL SERVER Para conectarse a una base de...

Page 1: 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.

Bases de Datos 1

Prof. Daniel Obando Fuentes

Page 2: 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.

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

Page 3: 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.

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

Page 4: 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.

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

Page 5: 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.

TÉRMINOS

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.

Server Roles: Agrupan permisos para facilitar su manejo y asignación.

Page 6: 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.

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.

Page 7: 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.

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 tempdbGOCREATE LOGIN u1 WITH PASSWORD = 'Mdfjd$sakj943857l7sdfh##30'CREATE USER u1 WITH DEFAULT_SCHEMA = u1GOGRANT CREATE TABLE to u1 GOEXECUTE AS user = 'u1'GOCREATE TABLE t1(c1 int)GOrevertGOSELECT user_name(uid) , * FROM sysobjects WHERE name = 't1'GO

Page 8: 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.

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.

Page 9: 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.

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.

Page 10: 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.

CREANDO UN USUARIO PARA UNA APP

Page 11: 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.

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

Page 12: 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.

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

Page 13: 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.

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