Tutorial para administrar acceso a SQL Server
Una vez que tienes lista tu instancia de SQL Server instalada y disponible, es necesario dar a tus usuarios acceso. Para esto es necesario entender el concepto de "Login". Un Login en SQL Server, se refiere a un objeto que tiene la caulidad de darnos acceso a SQL Server, es decir, para poder establecer una connección a SQL Server, es necesario tener un Login.
En SQL Server, existen dos tipos de logins, (1) los logins de tipo Windows y (2) los logins de tipo SQL. La diferencia de cada uno está en el modo en el que se demuestra la autenticidad. Es decir, para los logins tipo SQL, necesitas un nombre de usuario y una contraseña, donde SQL Server verificará si el nombre de usuario y la contraseña son correctas. Cabe destacar que los hashes de las contraseñas de los logins tipo SQL serán guardadas dentro de SQL Server, exactamente dentro de la base de datos de sistema master. En cambio, para los logins tipo Windows, tienes que tener una cuenta de Windows (ya sea local o dentro tu controlador de Dominio dentro de tu red) y crear un login dentro SQL Server para dicha cuenta. Lo más benefico de las cuentas tipo Windows, es que las contraseñas no serán guardadas en SQL Server, y por lo tanto no serán responsabilidad del administrador de bases de datos. También, debemos mencionar que SQL Server delega la responsibilidad de verificar la autenticidad del usuario y contraseña a Windows. Generalmente, Es preferible usar logins tipo Windows.
Para crear un login tipo Windows, primero debemos conectarnos a nuestro servidor SQL Server con SQL Server Management Studio (SSMS). No olvidemos que para crear logins dentro de SQL Server, necesitamos tener suficientes privilegios dentro de nuestro servidor. Asumiendo que ustedes tienen los sufiecientes privilegios, nos connectaremos a nuestro instancia de SQL Server. ¿No tienes SQL Server ni SSMS instalados? No te preocupes aquí está un video tutorial de tottix para instalarlos: https://youtu.be/r42GfXCKs-E.
Una vez conectado a la instancia de SQL Server. expendiremos el nodo de "Seguridad" ó "Security" y daremos click derecho sobre el nodo "Logins", y seleccionaremos "Nuevo Login" ó "New Login".
En la siguiente ventana nos aseguraremos que "Autenticación mediante Windows" ó "Windows Authentication" esté seleccionado, y daremos click en el botón "buscar" ó "search".
En la siguiente ventana escribiremos el nombre del usuario tipo Windows y daremos click en el botón "Revisar Nombres" ó "Check Names". Si el usuario no aparece, quizá el nombre está mal escrito ó el usuario no existe. Una vez encontrado el usuario da click en "OK".
Ya de regreso en la ventana anterior, daremos click en "Seguridades" ó "Securables" en nuestro menú izquierdo. Aquí es donde pudes asignar roles al nivel servidor a tu Login. Es mi caso, no le voy a asignar ningún rol.
Lo siguiente que necesitamos hacer es crear un Usuario dentro de la base de datos a la que deseamos darle acceso a nuestro Login. Recordemos que un Login y un Usuario son dos objetos diferentes, el login es un objeto que se utiliza para asignar privilegios a nivel servidor; algunos de estos privilegios son conectarse al servidor, crear otros roles, crear bases de datos, administrador de sistema, etc. En cambio, un Usuario es un objeto que se crea dentro de una base de datos, y a este se le asignan privilegios como leer, escribir, alterar datos, tablas o columnas dentro de la base de datos. Un Login no puede modificar objetos que existen dentro de las bases de datos, solamente un objeto Usuario puede hacer eso. Por lo tanto es necesario crear un usuario dentro de una base de datos para determinado login. Un login debe tener un usuario en cada base de datos que necesite acceder.
Daremos click en "Mapa de Usuarios" ó "User Mapping" en el menú izquierdo, y en la sección superior podemos ver nuestras bases de datos disponibles para dar acceso. Aquí deberás seleccionar las bases de datos a las que desees dar accesso a tu login. En mi caso solo seccionaré la base de datos "AdventureWorks2019". Puedes también dar doble click en el nombre de usuario para cambiar el nombre si así lo deseas, sin embargo yo encuetro mas fácil nombrar a los usuarios como los logins a los que están relacionados, por lo tanto no lo modificaré.
En la sección inferior de la ventana podemos elegir el rol que quieras darle a tu usuario dentro de la base de datos que tienes actualmente selccionada. algunos de estos roles fueron creados por predeterminado por SQL Server al momento de crear tu base de datos como db_owner, db_datareader, y todos los demás que comienzan con "db_". Estos roles tienes los privilegios predeterminados, por ejemplo, db_datareader tiene el privilegio de SELECT dentro de todo el esquema dbo, a su vez db_owner tiene el privilegio de ALTER, é implicitamente tiene los privilegios de SELECT, UPDATE, DELETE, INSERT, lo cual lo convierte en un rol que tiene los suficientes privilegios para modificar la base de datos, por lo tanto es importante tener cuidado al asignar este rol.
Otra manera más segura de asignar privilegios, es la de asignar un privilegio por objeto. El único inconveniente es que es más laborioso administrar los privilegios de cada usuario, por lo tanto crear roles con privilegios especiales ó usar los roles predeterminados es una mejor opción. Finalmente daremos click en ok y nuestro rol será creado.
Comentarios
Publicar un comentario