Documente Academic
Documente Profesional
Documente Cultură
4. En el panel Select a page seleccione Seguridad. En Autenticacin del servidor, seleccione o revise el modo de autenticacin
Practicas captulo 6
1. En el men Inicio, haga clic derecho en Mi PC y seleccione Administrar. 2. En la ventana Administrador del servidor, expanda Configuracin, y despus "Usuarios y grupos locales" (ver Figura 6-2).
3. 4. 5. 6.
Clic derecho en la carpeta Usuarios y seleccione Usuario Nuevo. En el Nombre de usuario, ingrese Bob. En el password y confirmacin de password ingrese P@ssw0rd. Desactive el check "El usuario debe cambiar la contrasea en el siguiente inicio de sesin 7. Clic en Crear. 8. En el Nombre de usuario ingrese CarolStreet. 9. En el password y confirmacin de password ingrese P@ssw0rd. 10. Desactive el check "El usuario debe cambiar la contrasea en el siguiente inicio de sesin 11. Clic en Crear. 12. En el Nombre de usuario ingrese Alice. 13. En el password y confirmacin de password ingrese P@ssw0rd.
Practicas captulo 6
Creando inicios de sesin en el Management Studio. Para crear inicios de sesin en el management studio siga los siguientes pasos: 1. 2. 3. 4. En el Explorador de objetos expanda su servidor. Expanda la carpeta Security. Clic derecho en logins y seleccione New Login. En el cuadro de dialogo Login-New (ver figura 6-3), escriba el nombre del login que desea agregar o haga clic en el botn Buscar para buscar una cuenta de Windows. 5. Si va a crear un inicio de sesin de SQL, seleccione el radiobutton con la opcin "autenticacin de SQL Server". 6. Adems, cuando se selecciona "autenticacin de SQL Server" puede optar por no hacer cumplir las polticas de contraseas. 7. Tambin es posible que desee cambiar la base de datos predeterminada del usuario y el lenguaje.
Practicas captulo 6
Practica: Creando un Nuevo Login para Alice. Para crear un nuevo login para Alice siga los siguientes pasos. 1. 2. 3. 4. 5. 6. 7. En el explorador de objetos expanda el servidor. Expanda la Carpeta Security. Clic derecho en Logins y seleccione New Login. En el cuadro de dialogo New Login haga clic en Search. En el cuadro de dialogo Select User or Group, tecle Alice y clic en Ok. Seleccione master como la base de datos predeterminada. Clic en Ok.
Practicas captulo 6
PRACTICA 6
SELECT LOGINPROPERTY('bill', 'passwordhash') CREATE LOGIN sofia WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ; GO SELECT LOGINPROPERTY('sofia','passwordhash')
passwordhash es de tipo varbinary, saldr NULL si el login de SQL Server no es vlido. PRACTICA 7
CREATE LOGIN [AughtEight\Bob] from Windows; GO
7.1
CREATE LOGIN [AughtEight\G NorthWest Sales] from Windows; GO
7.2
CREATE LOGIN Carol WITH PASSWORD = 'Th1sI$MyP@ssw0rd'; GO
7.3
ALTER LOGIN Carol WITH PASSWORD = 'newpassword', CHECK_POLICY=OFF; GO
Practica 8
Creacin de una nueva credencial Al crear una nueva credencial, siga estos pasos: 1. En el Object Explorer, expanda su servidor. 2. Expanda la carpeta Security. 3. Haga click en el botn derecho del ratn y seleccione New Credential(ver Figura 6-4).
Practicas captulo 6
4. Escriba un nombre para la credencial. 5. En la seccin de Identity (Identidad), escriba el nombre de una cuenta de Windows o haga click en el botn para buscar una cuenta. 6. Introduzca la contrasea de la cuenta. 7. Vuelva a introducir la contrasea para confirmar. 8. Habilite el uso de proveedor de cifrado (si se desea). 9. Seleccione un proveedor External Key Management (administrador Externo de Claves) (si la opcin anterior est activada).nuevanueva 10. Haga clic en OK.
PRACTICA 9
CREATE CREDENTIAL name WITH IDENTITY = 'identity_name' [, SECRET = 'secret'] [FOR CRYPTOGRAPHIC_PROVIDER provider_name]
PRACTICA 10
USE master CREATE CREDENTIAL StreetCred WITH IDENTITY = 'AughtEight\CarolStreet', SECRET = 'P@ssw0rd'; GO
Practicas captulo 6
PRACTICA 11
USE master CREATE LOGIN Ted WITH PASSWORD = 'P@ssw0rd'; GO EXEC sp_addsrvrolemember 'Ted', 'securityadmin'; GO
11.1
Practica 12
Para este ejemplo, crear un nuevo usuario de base de datos en la base de datos AdventureWorks2008R2 para Carol y establecer su esquema de default el esquema Sales. 1. En el Explorador de objetos, expanda Databases. 2. Expanda AdventureWorks2008R2 (ver Figura 6-6). 3. Expanda Security. 4. Haga clic derecho en Users y seleccione New User. 5. Escriba Carol en el cuadro User Name. 6. Escriba Carol en Login name, o seleccione su login con el botn''...''. 7. Escriba Sales en el cuadro Default schema. 8. Haga clic en Aceptar.
Practicas captulo 6
Ahora que Carol tiene una cuenta de usuario de base de datos en la base de datos AdventureWorks2008R2, ella ha heredado los permisos concedidos al rol pblico de base de datos. Los roles de base de datos y permisos son cubiertos despus en este captulo.
Practicas captulo 6
Practicas captulo 6
En un ejemplo anterior, usted ha creado un nuevo login de SQL Server llamado Carol y un usuario asociado en la base de datos AdventureWorks2008R2. Si desea crear un usuario para Carol en la base de datos tempdb, puede ejecutar la siguiente declaracin:
USE tempdb; CREATE USER Carol; GO
Practica 14
Si ha ejecutado la instruccin anterior DROP LOGIN [AughtEight \ Bob], tendr que volver a crear el login. En este ejemplo, vamos a crear un usuario base de datos llamado BillyBob que se asignar al login de Bob, y se asignar el esquema por defecto al esquema Sales:
USE master; CREATE LOGIN [AughtEight\Bob] FROM WINDOWS; USE AdventureWorks; CREATE USER BillyBob FOR LOGIN [AughtEight\Bob] WITH DEFAULT_SCHEMA = sales;
Practica 15
El ltimo ejemplo muestra la creacin de un nuevo usuario desde un certificado existente. Los certificados se tratan ms adelante en este captulo, pero para este ejemplo, creamos el certificado primero, y luego creamos el usuario:
USE AdventureWorks; CREATE CERTIFICATE SalesCert ENCRYPTION BY PASSWORD = 'P@ssw0rd' WITH SUBJECT = 'Sales Schema Certificate', EXPIRY_DATE = '12/31/2012'; GO CREATE USER SalesSecurity FOR CERTIFICATE SalesCert; GO
Practica 16
Tambin puede utilizar la sentencia ALTER USER para realizar cambios en una cuenta de usuario. Este es otro ejemplo donde Transact-SQL permite una mayor flexibilidad que el Management Studio. ALTER SCHEMA permite modificar tanto la propiedad name y la propiedad DEFAULT_SCHEMA. Si desea cambiar el login de Windows o SQL con la que la cuenta est asociada, tambin puede utilizar la opcin LOGIN = . Tenga en cuenta que la opcin LOGIN slo se puede utilizar para asociar un usuario a un login que es del mismo tipo que el que se cre originalmente. Esto no funcionar para los usuarios creados como certificado o claves. Estas opciones se muestran en los ejemplos siguientes:
Practicas captulo 6
Finalmente, una vez que un usuario ha dejado de ser til, utilice la instruccin DROP USER para eliminarlo de la base de datos. El comando DROP USER es sencillo, como se ve en el siguiente ejemplo:
USE AdventureWorks DROP USER BillyBob; GO
Practica 17
El siguiente ejemplo agrega al usuario de base de datos Carol al rol db_datareader con el cual permite que se puedan leer los datos de todas las tablas de usuario
USE AdventureWorks EXEC sp_addrolemember 'db_datareader', 'Carol'; GO
Para eliminar a Carol del rol db_datareader, use el siguiente procedimiento almacenado:
USE AdventureWorks EXEC sp_droprolemember 'db_datareader', 'Carol'; GO
Practica 18
Creacin de un Nuevo Rol Definido por el usuario de Base de datos en Management Estudio En la cuadro de dilogo New Role, le solicitan proporcionar un nombre para el rol, as como identificar un propietario para el mismo. El propietario del rol puede modificarlo en
Practicas captulo 6
Practica 19
Practicas captulo 6
La sentencia ALTER ROLE es bastante limitada, permitiendo cambiar slo el nombre del rol: Practica 19.1
USE AdventureWorks ALTER ROLE SalesStaff WITH NAME = SalesStaffRole; GO
El estatuto DROP ROLE permitir eliminar un rol de la base de datos una vez que ya no se necesita:
USE AdventureWorks DROP ROLE SalesStaffRole; GO
Practica 20 Try It Out Crear un Application Role En este ejemplo, se crea una nuevo rol de aplicacin llamado PurchasingOrderEntry, con una contrasea de POEpass1: 1. En el Explorador de objetos, expanda Bases de datos. 2. Expandir AdventureWorks2008R2 y, a continuacin, expanda seguridad. 3. Expandir Roles a continuacin, expanda Roles de aplicacin. 4. Clic derecho en Roles de aplicacin y seleccione Nuevo rol de aplicacin. 5. Escriba PurchasingOrderEntry para el nombre de rol (vea la Figura 6-8).
Practicas captulo 6
6. Establecer el esquema predeterminado Purchasing. 7. Introduzca POEpass1 en las cuadros Contrasea y Confirmar contrasea. 8. Haga clic en Aceptar.
Practica 21 La sentencia CREATE APPLICATION ROLE hace lo que su nombre indica. Cuando se utiliza esta sentencia, se debe especificar el nombre del rol de aplicacin, una contrasea para el rol de aplicacin, y, opcionalmente, un esquema predeterminado para el rol de aplicacin. El siguiente ejemplo crea un rol de aplicacin llamado SalesApp:
USE AdventureWorks CREATE APPLICATION ROLE SalesApp WITH PASSWORD = 'P@ssw0rd', DEFAULT_SCHEMA = Sales; GO
Practica 22
Practicas captulo 6
Practica 23 Con la sentencia ALTER APPLICATION ROLE, puede cambiar el nombre del rol de aplicacin, la contrasea y el esquema predeterminado. En el siguiente ejemplo se cambia el nombre del rol de SalesApp a OrderEntry y establece una nueva contrasea:
USE AdventureWorks ALTER APPLICATION ROLE SalesApp WITH NAME = OrderEntry, PASSWORD = 'newP@ssw0rd'; GO
----DROP APPLICATION ROLE rolename eliminar un rol de aplicacin de la base de datos. ---USE AdventureWorks DROP APPLICATION ROLE OrderEntry; GO
Practica 24
Practicas captulo 6
Practica 25 Alternativamente, si desea que Ted tenga la capacidad de actualizar cualquier objeto en la base de datos, puede utilizar lo siguiente:
Use AdventureWorks GRANT UPDATE TO Ted; GO
Practica 26 Por ejemplo, para conceder permisos para crear bases de datos al login de Ted, se puede utilizar la siguiente sentencia:
USE master GRANT CREATE ANY DATABASE TO Ted; GO
Practica 27 Si tambin quiere que Ted sea capaz de tener los permisos para modificar los inicios de sesin y permitir que otros puedan modificar los inicios de sesin, puede utilizar la siguiente sentencia:
USE Master GRANT ALTER ANY LOGIN TO Ted WITH GRANT OPTION; GO
Para eliminar la capacidad de Ted para modificar los inicios de sesin, puede utilizar la siguiente sentencia:------
Practicas captulo 6
Practica 28
Ahora bien, si desea prohibir a Ted ser capaz de crear una nueva base de datos, puede utilizar la instruccin DENY de la siguiente manera:
USE master DENY CREATE ANY DATABASE TO Ted; GO
Practica 29 En el siguiente ejemplo se crea un endpoint llamado ServiceBroker que ser utilizado para una aplicacin de Service Broker y luego otorga el permiso ALTER para ese endpoint a Ted:
CREATE ENDPOINT ServiceBroker STATE = STARTED AS TCP( LISTENER_PORT = 5162 ) FOR SERVICE_BROKER (AUTHENTICATION=WINDOWS); GO USE master GRANT ALTER ON ENDPOINT :: ServiceBroker TO Ted; GO
Practica 30 El siguiente objeto de nivel de servidor al que se le puede establecer permisos son los inicios de sesin. La sintaxis para la configuracin de permisos para los inicios de sesin es similar a la sintaxis para establecer permisos en los endpoints. Por ejemplo, para dar a Carol la capacidad de alterar el inicio de sesin de Ted, se utilizara la siguiente declaracin:
USE master GRANT ALTER ON LOGIN :: Ted TO Carol WITH GRANT OPTION; GO
Practica 31 En el siguiente ejemplo, se puede conceder el permiso CONTROL para el esquema de Sales al usuario Alice:
Practicas captulo 6
USE AdventureWorks CREATE USER Alice FOR LOGIN [AughtEight\Alice] WITH DEFAULT_SCHEMA = SALES; GO GRANT CONTROL ON SCHEMA :: Sales TO Alice; GO
Practica 32 Hay permisos adicionales que se pueden asignar a los objetos, los tipos de datos y colecciones de esquemas XML. Para otorgar permisos a los objetos de nivel de esquema, la sintaxis es similar a lo que vimos antes: {GRANT | REVOKE | DENY} action ON class :: securable TO principal Cuando la clase es un OBJECT, puede omitir OBJECT :: siempre y cuando el nombre de esquema se incluye con el nombre del objeto, como en el ejemplo siguiente:
Use AdventureWorks GRANT SELECT, UPDATE ON Person.Person to Alice; GO
Practica 33 Para el siguiente ejemplo, se crear un nuevo inicio de sesin, un usuario de base de datos para la base de datos AdventureWorks2008R2, a continuacin, se concedern permisos de control para el esquema de Sales para este nuevo usuario. Utilize el siguiente cdigo:
USE master CREATE LOGIN Chris WITH PASSWORD = 'P@ssw0rd', DEFAULT_DATABASE = AdventureWorks; GO USE AdventureWorks CREATE USER Chris WITH DEFAULT_SCHEMA = Sales; GO GRANT CONTROL ON SCHEMA :: SALES TO Chris; GO
Practica 34 Ahora, utilice el Explorador de objetos para ver qu permisos se han concedido a Chris. En primer lugar, mire la propia base de datos:
Practicas captulo 6
Practica 35 Debido a que usted le otorg el control del esquema Sales a Chris, hay que ver que permisos en realidad se le han asignado a ese esquema y los objetos dentro de l. Para ello, se abre la hoja de propiedades para la cuenta de usuario de Chris en la base de datos AdventureWorks2008R2.
1. Cierre la ventana Propiedades de base de datos AdventureWorks2008-haciendo clic en Aceptar o Cancelar. 2. En el Explorador de objetos, expanda AdventureWorks2008
Practicas captulo 6
Practica 36 Ahora tenemos un usuario con acceso completo al esquema Sales, pero no tiene acceso a los recursos fuera de l. Cualquier intento para consultar una vista en otro esquema resultar en el error siguiente:
SELECT * FROM HumanResources.Employee
Practica 37 Uno de los primeros pasos que se debe tomar es la creacin de la database master key. Hay que recordar que la database master key es una clave simtrica que cifra todos los datos privados clave (private key data) dentro de la base de datos. Esto es til si se estn usando las claves asimtricas o certificados, en los que se pueden crear sin tener que proporcionar una contrasea u otro mecanismo para proteger las claves privadas asociadas con los dos. Para crear una nueva clave maestra para la base de datos AdventureWorks2008R2,puede ejecutar el siguiente comando:
USE AdventureWorks CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'P@ssw0rd'; GO
Practica 38
El siguiente ejemplo guardar una copia de seguridad de la service master key en una carpeta llamada H:\KeyBackups (Esta carpeta debe existir):
BACKUP SERVICE MASTER KEY TO FILE = 'H:\KeyBackups\ServiceMasterKey' ENCRYPTION BY PASSWORD = 'c@MplexP@ssw0rd'; GO
Practica 39
Practica 40
Practicas captulo 6
Practica 41 Para utilizar EKM, primero se debe habilitar en el servidor. Esta funcin est desactivada por defecto, pero puede ser activado con el comando sp_configure. Debido a que habilitar EKM se considera una caracterstica avanzada, la configuracin show advance, tambin se debe especificar. El siguiente ejemplo muestra cmo activar EKM para su servidor:
sp_configure 'show advanced', 1; GO RECONFIGURE GO sp_configure 'EKM provider enabled', 1; GO RECONFIGURE GO
Practica 42 El siguiente ejemplo crea una nueva clave simtrica denominada SalesKey1, que utiliza el algoritmo 192-bit Triple DES 3-Key:
USE AdventureWorks GO --Create Symmetric Key CREATE SYMMETRIC KEY SalesKey1 WITH ALGORITHM = TRIPLE_DES_3KEY, KEY_SOURCE = 'The quick brown fox jumped over the lazy dog', IDENTITY_VALUE = 'FoxAndHound' ENCRYPTION BY PASSWORD = '9348hsxasnA@B'; GO
Practica 43
Practicas captulo 6
Practica 44
USE AdventureWorks CREATE ASYMMETRIC KEY HumanResources WITH ALGORITHM = RSA_2048; GO
Practica 45 En el ejemplo siguiente, se utiliza el siguiente cdigo para cifrar la clave privada del par claves HumanResources creado en el ejemplo anterior, mediante una contrasea
USE AdventureWorks ALTER ASYMMETRIC KEY HumanResources WITH PRIVATE KEY ( ENCRYPTION BY PASSWORD = 'P@ssw0rd'); GO
Practica 46 En el siguiente ejemplo, puede cambiar la contrasea utilizada para cifrar la clave privada, esto, primero descifrndolo, y luego volver a cifrar con la nueva contrasea:
USE AdventureWorks ALTER ASYMMETRIC KEY HumanResources WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = 'P@ssw0rd', ENCRYPTION BY PASSWORD = '48ufdsjEHF@*hda'); GO
Practica 47
Practicas captulo 6
Practica 48
Practicas captulo 6
ALTER TABLE Sales.CreditCard ADD EncryptedCardNumber varbinary(128); GO OPEN SYMMETRIC KEY SalesKey1 DECRYPTION BY CERTIFICATE SalesCert WITH PASSWORD = 'P@ssw0rd' UPDATE Sales.CreditCard SET EncryptedCardNumber = EncryptByKey(Key_GUID('SalesKey1'), CardNumber); GO CLOSE SYMMETRIC KEY SalesKey1; GO
Practica 49 Debido a que la clave simtrica se utiliz para encriptar los datos, tambin se utilizar para el desencriptado. Utilizando el ejemplo anterior como plantilla, puede usar los siguientes comandos para crear otra nueva columna que almacena los datos descifrados. Una instruccin SELECT est incluido que permitir ver los datos originales, los datos encriptados, y las columnas de datos desencriptados:
ALTER TABLE Sales.CreditCard ADD DecryptedCardNumber NVARCHAR(25); GO OPEN SYMMETRIC KEY SalesKey1 DECRYPTION BY CERTIFICATE SalesCert WITH PASSWORD = 'P@ssw0rd'; GO UPDATE Sales.CreditCard SET DecryptedCardNumber = DecryptByKey(EncryptedCardNumber); GO CLOSE SYMMETRIC KEY SalesKey1; GO Select TOP (10) CreditCardID, CardNumber AS Original, EncryptedCardNumber AS Encrypted, DecryptedCardNumber AS Decrypted FROM Sales.CreditCard; GO
Practica 50
Practicas captulo 6
OPEN SYMMETRIC KEY SalesKey1 DECRYPTION BY CERTIFICATE SalesCert WITH PASSWORD = 'P@ssw0rd'; GO SELECT CreditCardID, CardNumber,EncryptedCardNumber AS 'Encrypted Card Number', CONVERT(nvarchar, DecryptByKey(EncryptedCardNumber)) AS 'Decrypted Card Number' FROM Sales.CreditCard; GO CLOSE SYMMETRIC KEY SalesKey1; GO
Practica 51 Configuracin de TDE es un poco ms complejo que otros mtodos de cifrado, ya que hay ciertas dependencias que debe estar en su lugar antes de poder activarla. 1. En primer lugar, una clave maestra de base de datos debe existir en la base de datos master. 2. Por otra parte, se debe crear un certificado o instalar un certificado en la base de datos master que puede ser usado para encriptar el DEK, o usted puede utilizar una clave asimtrica de un proveedor de EKM. 3. Entonces se tendr que crear el DEK en la base de datos que ser encriptada. Por ltimo, habilitar la encriptacin en la base de datos. El siguiente script es un ejemplo de estos pasos:
USE master CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MyStrongP@ssw0rd'; GO CREATE CERTIFICATE AughtEightTDE WITH SUBJECT = 'TDE Certificate for the AUGHTEIGHT Server'; GO USE AdventureWorks CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = TRIPLE_DES_3KEY ENCRYPTION BY SERVER CERTIFICATE AughtEightTDE; GO ALTER DATABASE AdventureWorks SET ENCRYPTION ON; GO
Practica 52
Practicas captulo 6
Practica 53 En el ejemplo siguiente, se consulta la vista sys.crypt_properties para ver la firma digital asignado al procedimiento almacenado Sales.DisplaySomeVendors. A continuacin, puede modificar el procedimiento, consulte la vista de nuevo, y nota que el procedimiento ya no est firmado digitalmente.
SELECT * FROM sys.crypt_properties GO ALTER PROCEDURE Sales.DisplaySomeVendors AS SELECT TOP (10) * FROM Purchasing.Vendor GO SELECT * FROM sys.crypt_properties
Practicas captulo 6