Top Banner
josealopezpastor@gmail .com 649.74.94.18 Clase 3ª 1. Creación de una base de datos 2. Usuarios 1.Roles de usuarios 2.Schemas 3. Bases de datos independientes 4. Importar BBDD desde ficheros
32

Curso sql server 2012 clase 3

Apr 15, 2017

Download

Data & Analytics

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Curso sql server 2012 clase 3

[email protected]

Clase 3ª

1. Creación de una base de datos2. Usuarios

1. Roles de usuarios2. Schemas

3. Bases de datos independientes4. Importar BBDD desde ficheros

Page 2: Curso sql server 2012 clase 3

[email protected]

Podemos crear una BBDD desde el asistente Recordar que tenemos un asistente para todoO podemos crearla mediante una instrucción SQL.Vamos a comenzar por el asistente. Hacemos click con el botón derecho en Bases de Datos – Nueva base de datos

Creación de una base de datos

Page 3: Curso sql server 2012 clase 3

[email protected]

Repasemos los campos del asistente:-El nombre de la BBDD-El propietario de la BBDD. El usuario que crea la base de datos se convierte en su propietario.-Pueden crearse hasta 32.767 bases de datos en una instancia de SQL Server.-Archivos: vemos que inicialmente especifica 2 por defecto.-Podemos cambiar la ruta de los archivos-Podemos cambiar el nombre de los archivos-Podemos limitar el tamaño de los archivos y hacer que no crezcan más de un tamaño

Creación de una base de datos

Page 4: Curso sql server 2012 clase 3

[email protected]

Solamente un archivo de datos principal (*.mdf). Estos archivos contienen la información de inicio de la base de datos. Se utilizan también para almacenar datos

Cada archivo es utilizado por una base de datos. No podemos tener varias BBDD en el mismo archivo

Creación de una base de datos

Page 5: Curso sql server 2012 clase 3

[email protected]

Podemos hacer que nuestros datos estén en más de un archivo (*.ndf). Algunas bases de datos pueden ser muy grandes y necesitar varios archivos de datos secundarios o utilizar archivos secundarios en unidades de disco distintas, de modo que los datos estén distribuidos en varios discos.

Creación de una base de datos

Page 6: Curso sql server 2012 clase 3

[email protected]

Podemos indicar el tamaño de nuestro archivo de log (*.ldf). Estos archivos contienen la información de registro que se utiliza para recuperar la base de datos. Cada base de datos debe tener al menos un archivo de registro de transacciones, aunque puede tener más de uno.

Creación de una base de datos

Page 7: Curso sql server 2012 clase 3

[email protected]

Lo habitual en BBDD pequeñas y medianas es un fichero de datos y un fichero de Log. El tamaño del fichero del Log depende del espacio que tengamos.

Pero se pueden separar los datos en más de un fichero con lo que se aumentará el rendimiento.Esto se hace empleando archivos secundariosCuando se crea la tabla se especifican los archivos secundarios en los que queremos se almacenen los datosSi se quiere aumentar el rendimiento se puede emplear una unidad de disco distinta para cada archivo secundario

Creación de una base de datos

Page 8: Curso sql server 2012 clase 3

[email protected]

Siguiendo con el ejemplo de librería. -Puedo asignar la tabla Libros a un fichero-La tabla Editoriales a otro-La tabla Librerías a otro-Y la tabla pedidos a otro distinto

De este modo tengo en varios ficheros cada una de las tablas

Pero lo interesante son los grupos de ficheros….

Creación de una base de datos

Page 9: Curso sql server 2012 clase 3

[email protected]

Al insertar filas sobre una tabla ubicada sobre un Grupo de Ficheros con múltiples Ficheros, las filas se van repartiendo entre los distintos Ficheros proporcionalmente al espacio libre existente en cada uno de estos. Los grupos de archivos utilizan una estrategia de relleno proporcional entre todos los archivos de cada grupo de archivos. A medida que se escriben datos en el grupo de archivos, SQL Server Database Engine (Motor de base de datos de SQL Server) escribe una cantidad proporcional al espacio disponible del archivo en cada archivo del grupo, en lugar de escribir todos los datos en el primer archivo hasta que esté completo.

Creación de una base de datos

Page 10: Curso sql server 2012 clase 3

[email protected]

Como se crea un grupo de archivos??-Cuando creamos una tabla le asignamos un grupo de archivos, no solo un archivo secundario-Si cada uno de los archivos del grupo lo metemos en tantos sistemas de archivos distintos como CPU tenemos, estamos optimizando la velocidad de escritura/lectura de los datos.

Creación de una base de datos

Page 11: Curso sql server 2012 clase 3

[email protected]

Recomendaciones de Microsoft:•La mayor parte de las bases de datos funcionarán correctamente con un solo archivo de datos y un solo archivo de registro de transacciones.•Para maximizar el rendimiento, cree archivos o grupos de archivos en tantos discos físicos disponibles como sea posible y distribuya en grupos de archivos distintos los objetos que compitan de forma intensa por el espacio.•Utilice grupos de archivos para permitir la colocación de los objetos en determinados discos físicos.•Disponga en grupos de archivos distintos las diferentes tablas que se utilicen en las mismas consultas de combinación. De ese modo, el rendimiento mejorará debido a la búsqueda de datos combinados que realizan las operaciones de E/S en paralelo en los discos.

Creación de una base de datos

Page 12: Curso sql server 2012 clase 3

[email protected]

Recomendaciones de Microsoft:Distribuya en grupos de archivos distintos las tablas de acceso frecuente y los índices no agrupados que pertenezcan a esas tablas. De ese modo, el rendimiento aumentará debido a las operaciones de E/S en paralelo que se realizan si los archivos se encuentran en discos físicos distintos.No coloque el archivo o archivos de registro de transacciones en el mismo disco físico con los demás archivos y grupos de archivosDocumentación adicional:

https://msdn.microsoft.com/es-es/library/ms189563(v=sql.110).aspx http://blog.mclaughlinsoftware.com/2012/09/16/setup-sql-server-schema/ http://blog.sqlauthority.com/2009/09/07/sql-server-importance-of-database-

schemas-in-sql-server/ http://www.guillesql.es/Articulos/

SQLServerFAQ_Propietario_Esquema_Owner.asp

Creación de una base de datos

Page 13: Curso sql server 2012 clase 3

[email protected]

Ya tenemos creada nuestra BBDD creadaVeremos que se han creado unas tablas, vistas y procedimientos almacenados que se han creado por defecto.Orden de intercalación por defectoFunciones de seguridad, usuarios, también por defecto. Entre estos usuarios el propietario o dbo (data base owner). Es el creador de la BBDD

Creación de una base de datos

Page 14: Curso sql server 2012 clase 3

[email protected]

El propietario es el creador de la BBDD Es posible que necesitemos que otras personas accedanPodemos ver los usuarios que tienen permisos sobre una base de datos en Seguridad - Usuarios

Usuarios

Page 15: Curso sql server 2012 clase 3

[email protected]

Cuando hacemos click en Seguridad-Usuarios-Nuevo Usuario vemos que tenemos seleccionado por defecto Usuario SQL con inicio de sesión

Usuarios

Page 16: Curso sql server 2012 clase 3

[email protected]

Solamente podré seleccionar usuarios que han sido previamente introducidos en la carpeta de inicios de sesión de SQL Server Management Studio.

Se puede ver fácilmente su funcionamiento introduciendo un usuario en la carpeta de inicio de sesión y veremos como está disponible para seleccionarlo mientras que si extraemos el usuario de la carpeta de inicio de sesión, éste no está disponible para agregarle permisos a la BBDD.

Pensar además en los grupos de usuarios de Active Directory, tanto para este caso como para el siguiente.

Usuarios

Page 17: Curso sql server 2012 clase 3

[email protected]

Si seleccionamos en el desplegable del tipo de usuario un Usuario de Windows, podremos seleccionar entonces a todos los usuarios del dominio pero tendremos que vincularlo a un usuario con privilegios de inicio de sesión.

Usuarios

Page 18: Curso sql server 2012 clase 3

[email protected]

Vamos a ver las diferencias entre SCHEMA y ROL.

ROL a nivel base de datos.Para administrar con facilidad los permisos en las bases de datos, SQL Server proporciona varios roles, que son las entidades de seguridad que agrupan a otras entidades de seguridad. Son como los grupos del sistema operativo Microsoft Windows (Active Directory). Los roles de nivel de base de datos se aplican a toda la base de datos en lo que respecta a su ámbito de permisos.

https://msdn.microsoft.com/es-es/library/ms189121(v=sql.110).aspx

Usuarios

Page 19: Curso sql server 2012 clase 3

[email protected]

ROL a nivel base de datos.Existen dos tipos de roles de nivel de base de datos en SQL Server: los roles fijos de base de datos, que están predefinidos en la base de datos, y los roles flexibles de base de datos, que pueden crearse.Los roles fijos de base de datos se definen en el nivel de base de datos y existen en cada una de ellas.Los miembros de los roles de base de datos db_owner y db_securityadmin pueden administrar la pertenencia a roles fijos de base de datos. Sin embargo, solo los miembros del rol de base de datos db_owner pueden agregar miembros al rol fijo de base de datos db_owner.

Usuarios

Page 20: Curso sql server 2012 clase 3

[email protected]

ROL a nivel base de datos.Roles fijos:

db_owner Pueden realizar todas las actividades de configuración y mantenimiento en la base de datos y también pueden eliminar la base de datos.

db_securityadmin Modificar la pertenencia a roles y administrar permisos. Si se agregan entidades de seguridad a este rol, podría habilitarse un aumento de privilegios no deseado.

db_accessadmin Agregar o quitar el acceso a la base de datos para inicios de sesión de Windows, grupos de Windows e inicios de sesión de SQL Server.

db_backupoperator Pueden crear copias de seguridad de la base de datos.

db_ddladmin Ejecutar cualquier comando del lenguaje de definición de datos (DDL) en una base de datos.

db_datawriter Agregar, eliminar o cambiar datos en todas las tablas de usuario.

db_datareader Leer todos los datos de todas las tablas de usuario.

db_denydatawriter NO pueden agregar, modificar ni eliminar datos de tablas de usuario de una base de datos.

db_denydatareader NO pueden leer datos de las tablas de usuario dentro de una base de datos.

Usuarios

Page 21: Curso sql server 2012 clase 3

[email protected]

ROL a nivel base de datos.Como personalizar roles y crearse los que deseemos.

Usuarios

Page 22: Curso sql server 2012 clase 3

[email protected]

SCHEMA.Antes de SQL Server 2005. Cualquier objeto tiene que tener un Owner. Ya sea una tabla, procedimiento almacenado, vista, etc. Hemos visto antes en la creación de una tabla que el creador de una tabla pasa a ser el owner de la tabla. Por ello que se suelen escribir las tablas dbo.Nombre

Que pasa si alguien que ha creado elementos abandona la compañía y por lo tanto se tiene que borrar su cuenta de usuario?? Se tienen que pasar los owners

http://www.sqlteam.com/article/understanding-the-difference-between-owners-and-schemas-in-sql-server

Usuarios

Page 23: Curso sql server 2012 clase 3

[email protected]

SCHEMA. Se tiene que entender como un contenedor de recursos. Habitualmente en diseño se crean las tablas con el nombre del departamento la funcionalidad que tienen.Puede parecer lo mismo que el dboPero no!Cada esquema tiene un owner pero no está asociado a un nombre. Por lo tanto si se tiene que borrar la cuenta que es owner de un esquema, ahora es posible sin tener que realizar operaciones adicionales.Por otro lado, sino queremos una gestión de este tipo, siempre tenemos el esquema dbo

Usuarios

Page 24: Curso sql server 2012 clase 3

[email protected]

SCHEMA.Cuando creamos una base de datos se crean los Schemas por defecto.Para ver o modificar Schemas

Usuarios

Page 25: Curso sql server 2012 clase 3

[email protected]

SCHEMA.Para cambiar la pertenencia de una tabla a un schema determinado

ALTER SCHEMA schema_destino TRANSFER dbo.nombre_tabla

Para cambiar el schema al que pertenece la tabla desde el asistente tenemos que usar la ventana propiedades:

Usuarios

Page 26: Curso sql server 2012 clase 3

[email protected]

Ahora, si continuamos con la creación de los usuarios, podemos decirle que pertenecen a un schema o a un rol que determinemos.

Usuarios

Page 27: Curso sql server 2012 clase 3

[email protected]

Cuando se crea una BBDD se crean ciertas dependencias del servidor/instancia: cuentas de usuario, configuración de intercalación, etc. Conlleva ciertas dificultades a la hora trasladar una base de datos. Por ejemplo de desarrollo a producción.NOVEDAD en SQL Server 2012 Base de datos independientesEn la práctica tenemos BBDD parcialmente independientes, cuya estructura, configuración y usuarios se almacenan en la propia BBDD y no en bases de datos maestros o archivos de configuración del servidor.

Bases de datos independientes

Page 28: Curso sql server 2012 clase 3

[email protected]

Para poder usarlas tenemos que habilitarlas.Por defecto se encuentran a false.Para ello botón derecho en la instanciaPropiedadesAvanzado

Bases de datos independientes

Page 29: Curso sql server 2012 clase 3

[email protected]

Ahora, si intentamos crear una base de datos mediante el asistente vemos en Opciones – Tipo de contención la posibilidad de cambiar.

Bases de datos independientes

Page 30: Curso sql server 2012 clase 3

[email protected]

En mi caso, al crear una base de datos de este tipo me salta un error.

sp_configure 'contained database authentication', 1;GORECONFIGURE;GOSe ha cambiado la opción de configuración 'contained database authentication' de 0 a 1. Ejecute la instrucción RECONFIGURE para instalar.

Bases de datos independientes

Page 31: Curso sql server 2012 clase 3

[email protected]

Lo habitual ahora es crear los usuarios del tipo Usuario SQL con contraseña dado que el usuario y las claves se almacenan en la misma base de datosEste tipo de usuario no se puede crear en las bases de datos que no son idependientes

Bases de datos independientes

Page 32: Curso sql server 2012 clase 3

[email protected]

Se puede importar una BBDD desde los archivos mdf.Botón derecho en Bases de Datos AdjuntarTenemos que seleccionar el archivo mdfPara copiar archivos mdf se tienen que parar los servicios para que los ficheros dejen de estar en uso

Importar BBDD desde archivos