Usuarios
Colocar el servidor en el modo de autenticación Windows/SqlServer. En SQL Server Management Studio, click derecho, Propiedades en la Instancia de SQL Server. Seleccionar Propiedades (del Servidor). Finalizando en la pestaña Seguridad.
Añadir un usuario (usuario01) del tipo SQL Server que requiera cambio de password al inicio. El usuario debe asignarse a la base de datos inicial para que pueda abrir, en caso contrario daría el siguiente error:
Para conectarnos debemos indicar autenticación SQL Server. El MUST_CHANGE nos obligará al cambio de contraseña:
Si accedemos a otra Base de datos daría: No da error en la PruebaSQL pero no deja ver ni siquiera las tablas. No nos deja ninguna acción en la Base de Datos.
Probamos con lo siguiente desde el usuario administrador en la carpeta Seguridad de la Base de datos. Ahora nos deja ver las tablas y seleccionar. No nos permite crear objetos ni actualizar datos.
En los permisos de objetos podemos probar a restringir alguna posibilidad: Sólo permitirá select del campo especificado de la tabla concreta.
Mantenimiento de usuarios con sentencias SQL Creación de Inicios de sesión: CREATE LOGIN Usuario WITH PASSWORD = 'Passwd' MUST_CHANGE, CHECK_EXPIRATION = ON, CHECK_POLICY = ON, (estos dos últimos necesarios para MUST_CHANGE) DEFAULT_DATABASE =database ó CREATE LOGIN [ \ ] FROM WINDOWS; Eliminación/Modificación de inicios de sesión: DROP LOGIN / ALTER LOGIN ALTER LOGIN Mary5 ENABLE; ALTER LOGIN Mary5 DISABLE;
Creación de usuarios de Base de Datos asociados a un login: use BD CREATE USER FOR LOGIN WITH DEFAULT_SCHEMA = Eliminación/Modificación usuarios de B.D: DROP USER /ALTER USER Habilitar usuario guest: GRANT CONNECT TO guest; Deshabilitarlo: DENY CONNECT TO guest;
Permisos: Instrucción GRANT Permisos a esquema GRANT insert on SCHEMA :: dbo TO Usuario GRANT control on SCHEMA :: dbo TO Usuario GRANT ALL/CREATE, DELETE, INSERT, REFERENCES, SELECT, UPDATE, EXECUTE esquema.OBJETO (Columna1, Columna2,...) TO Usuario WITH GRANT OPTION (Puede transferir los permisos) Ejemplos de permisos de Base de Datos: USE BD GRANT CREATE TABLE TO MelanieK; USE BD GRANT CREATE VIEW TO CarmineEs WITH GRANT OPTION; Ejemplos de permisos de Tablas: USE AdventureWorks2008R2; GRANT SELECT ON Person.Address TO RosaQdM; GO
Quitar permisos: DENY ALL/CREATE, DELETE, INSERT, REFERENCES, SELECT, UPDATE, EXECUTE on OBJETO (Columna1, Columna2,...) TO Usuario REVOQUE quita lo dado o denegado en comandos GRANT o DENY
create database Adm04 go CREATE LOGIN Usuario WITH PASSWORD='123456' MUST_CHANGE, CHECK_EXPIRATION=ON, CHECK_POLICY=ON go -- probar usuario Usuario -- Puede ver las BD pero no acceder a su contenido use adm04 CREATE USER Usuario FOR LOGIN Usuario GRANT control on SCHEMA :: dbo TO Usuario Ejemplo:
use adm04 create table prueba2 (campo1 int, campo2 varchar(20) ) use adm04 GRANT CREATE Table TO Usuario use adm04 select * from prueba; use adm04 DENY SELECT on prueba (campo1) TO Usuario ALTER LOGIN Usuario DISABLE; use adm04 drop user usuario