{"id":561,"date":"2017-07-05T15:20:12","date_gmt":"2017-07-05T15:20:12","guid":{"rendered":"http:\/\/www.manualsqlserver.com\/?p=561"},"modified":"2021-03-20T20:24:23","modified_gmt":"2021-03-20T20:24:23","slug":"561","status":"publish","type":"post","link":"https:\/\/manualsqlserver.com\/?p=561","title":{"rendered":"Usuarios de base de datos en SQL Server"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"220\" height=\"280\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_UsuariosBaseDatos_D.png\" alt=\"\" class=\"wp-image-1346\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\"><strong>Usuarios de Base de datos<\/strong><\/h1>\n\n\n\n<p><strong>Conceptos&nbsp;<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>El usuario de la base de datos es la identidad del inicio de sesi\u00f3n cuando est\u00e1 conectado a una base de datos.<\/li><li>El usuario de la base de datos puede utilizar el mismo nombre que el inicio de sesi\u00f3n, pero no es necesario.<\/li><li>El usuario es la entidad de seguridad a la que se les puede asignar permisos sobre los objetos de la base de datos.<\/li><li>Un inicio de sesi\u00f3n se puede asignar a bases de datos diferentes como usuarios diferentes pero solo se puede asignar como un usuario en cada base de datos.<\/li><li>Se pueden crear usuarios de base de datos sin inicios de sesi\u00f3n, estos no podr\u00e1n iniciar sesi\u00f3n pero si se pueden asignar permisos.<\/li><\/ul>\n\n\n\n<!--more-->\n\n\n\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-2636008503986218\" data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Crear Usuarios<\/strong><\/h2>\n\n\n\n<p><strong>Instrucci\u00f3n: Create user<\/strong><br><strong>Permite crear un usuario de base de datos.<\/strong><br><strong>Sintaxis:<\/strong><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para crear un usuario en base a un inicio de sesi\u00f3n de SQL Server<\/strong><\/p>\n\n\n\n<p>Create user NombreUsuario from Login InicioSesion<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Para crear un usuario en base a una cuenta de Windows<\/strong><\/p>\n\n\n\n<p>Create user NombreUsuario for Login UsuarioWindows<\/p>\n\n\n\n<p><strong>Para especificar el usuario de Windows se escribe el nombre del equipo, el backslash y el nombre del usuario. El siguiente c\u00f3digo crea un usuario de base de datos Fernando en base al usuarios de Windows FernandoLuque del servidor LondonPRO<\/strong><\/p>\n\n\n\n<p>CREATE USER [Fernando] FOR LOGIN [LondonPRO\\FernandoLuque]<br>GO<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Procedimiento almacenado sp_adduser<\/strong><\/h3>\n\n\n\n<p>Permite a\u00f1adir un usuario a la base de datos<br>Sintaxis:<\/p>\n\n\n\n<p>sp_adduser [ @loginame = ] &#8216;login&#8217;<br>[ , [ @name_in_db = ] &#8216;user&#8217; ]<br>[ , [ @grpname = ] &#8216;rol_de_BaseDatos&#8217; ]<\/p>\n\n\n\n<p>Donde:<br><strong>@loginame = &#8216;login&#8217;<\/strong> especifica el nombre del inicio de sesi\u00f3n.<br><strong>@name_in_db = &#8216;user&#8217;<\/strong> especifica el nombre del usuario a crear.<br><strong>@grpname = &#8216;rol_de_BaseDatos&#8217;<\/strong> especifica el nombre del rol de base de datos del que se hace miembro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Modificar el usuario<\/strong><\/h3>\n\n\n\n<p>Instrucci\u00f3n: Alter user<br>Permite la modificaci\u00f3n de un usuario, donde es posible cambiar el nombre, asignarle un login o inicio de sesi\u00f3n y cambiarle el password.<br>Sintaxis:<\/p>\n\n\n\n<p>ALTER USER userName<br>WITH NAME = NuevoNombre<br>| LOGIN = NombreLogin<br>| PASSWORD = &#8216;password&#8217; [ OLD_PASSWORD = &#8216;oldpassword&#8217; ]<\/p>\n\n\n\n<p>Donde:<br><strong>WITH NAME = NuevoNombre<\/strong> permite especificar el nuevo nombre del usuario.<br><strong>LOGIN = NombreLogin<\/strong> permite asignar un login al usuario.<br><strong>PASSWORD = &#8216;password&#8217; [ OLD_PASSWORD = &#8216;oldpassword&#8217; ]<\/strong> permite cambiar el password al usuario.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Eliminar usuarios<\/h3>\n\n\n\n<p>Instrucci\u00f3n: Drop user<br>Permite eliminar un usuario de base de datos.<br>Sintaxis:<\/p>\n\n\n\n<p>Drop user NombreUsuario<\/p>\n\n\n\n<p><strong>Consideraciones<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>El usuario no se puede eliminar si se encuentra iniciada su sesi\u00f3n.<\/li><li>El usuario no se puede eliminar si es propietario de alguna base de datos.<\/li><li>El usuario no se puede eliminar si la cuenta est\u00e1 deshabilitada.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ejemplos<\/strong><\/h2>\n\n\n\n<p><strong>Ejercicio 1 <\/strong><br><strong>Crear un usuario para Northwind llamado Capataz en base al mismo login<\/strong><br><strong>Asignar permisos de Lectura, Inserci\u00f3n y Actualizaci\u00f3n en toda la BD<\/strong><\/p>\n\n\n\n<p>use master<br>go<br>Create login Capataz with password = &#8216;123&#8217;<br>go<br>use Northwind<br>go<br>Create user Capataz from login Capataz<br>go<br>grant select, Insert, Update to Capataz<br>Deny delete to Capataz<br>go<\/p>\n\n\n\n<p>Ejercicio 2<br><strong>Crear un usuario en base a la cuenta de Windows, el servidor es OneServer y la cuenta de inicio de Windows es TeamServer,&nbsp;asignarle el esquema db_ddladmin<\/strong><\/p>\n\n\n\n<p>use Northwind<br>go<br>Create user TrainerSQL FOR LOGIN [OneServer\\TeamServer] WITH DEFAULT_SCHEMA=[db_ddladmin]<br>GO<\/p>\n\n\n\n<p><strong>Ejercicio 3<\/strong><br><strong>Crear en AdventureWorks un usuario AsistenteRH en base a un login del mismo &nbsp;nombre que tenga permisos de lectura y escritura en el esquema Person<\/strong><\/p>\n\n\n\n<p>use master<br>go<br>create login AsistenteRH with password = &#8216;123&#8217;<br>go<br>use AdventureWorks<br>go<br>create user AsistenteRH from login AsistenteRH<br>go<br>&#8212; Permisos<br>Grant Select, Update on Schema::Person to AsistenteRH<br>Deny Insert, Delete on Schema::Person to AsistenteRH<br>go<\/p>\n\n\n\n<p>Importante: Note que el login se utiliza para conectarse a SQL Server y el usuarios de<br>base de datos es utilizado para asignar los permisos sobre los asegurables.<\/p>\n\n\n\n<p><strong>Ejercicio 4<\/strong><br><strong>Crear un usuario en AdventureWorks llamado Vendedor en base al mismo login&nbsp;<\/strong><strong>y asignar permisos de lectura, escritura y modificaci\u00f3n en el esquema Sales.<\/strong><\/p>\n\n\n\n<p>use master<br>go<br>sp_addlogin Vendedor, 123<br>go<br>use AdventureWorks<br>go<br>sp_adduser Vendedor, Vendedor<br>go<br>&#8212; Los permisos<br>Grant select, Insert, Update on schema::Sales to Vendedor<br>Deny Delete on schema::Sales to Vendedor<br>go<\/p>\n\n\n\n<p><strong>Ejercicio 5<\/strong><br><strong>Listar los usuarios de la base de datos AdventureWorks<\/strong><\/p>\n\n\n\n<p>use AdventureWorks<br>go<br>select name, principal_id, type, type_desc,<br>default_schema_name from sys.database_principals where type = &#8216;S&#8217;<br>go<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_UsuariosBaseDatos_01.png\" alt=\"\" class=\"wp-image-1345\" width=\"806\" height=\"293\" srcset=\"https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_UsuariosBaseDatos_01.png 896w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_UsuariosBaseDatos_01-300x109.png 300w, https:\/\/manualsqlserver.com\/wp-content\/uploads\/2020\/05\/ManualSQL_UsuariosBaseDatos_01-768x279.png 768w\" sizes=\"auto, (max-width: 806px) 100vw, 806px\" \/><\/figure><\/div>\n\n\n\n<p><strong>Ejercicio 6<\/strong><br><strong>Crear un usuario JefeRecursos en AdventureWorks <\/strong><br><strong>en base al mismo login y asignar permisos en el esquema HumanResources. <\/strong><br><strong>Permisos: Select, Insert, Update, Denegar: Delete<\/strong><\/p>\n\n\n\n<p>use master<br>go<br>Create login JefeRecursos with password = &#8216;123&#8217;<br>go<br>use AdventureWorks<br>go<br>create user JefeRecursos from login JefeRecursos<br>go<br>&#8212; Permisos<br>Grant Select, Insert, Update on schema::HumanResources to JefeRecursos<br>Deny Delete on schema::HumanResources to JefeRecursos<br>go<\/p>\n\n\n\n<script async=\"\" src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\" style=\"display:block; text-align:center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-2636008503986218\" data-ad-slot=\"1902193434\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n\n<p><strong>Ejercicio 7<\/strong><br><strong>Crear un usuario UserCopias en base al login AltaDisponibilidad y hacerlo miembro de db_backupoperator<\/strong><\/p>\n\n\n\n<p>use master<br>go<br>Create login AltaDisponibilidad with password = &#8216;123&#8217;<br>go<br>use AdventureWorks<br>go<br>create user UserCopias from login AltaDisponibilidad<br>go<br>Alter role db_backupoperator add member UserCopias<br>go<\/p>\n\n\n\n<p><strong>Ejercicio 8<br>Usuario en base al de Windows &#8211; TrainerSQLWin. Se supone que el usuario de Windows existe. El equipo donde se crear\u00e1 es ServerLondres<\/strong><\/p>\n\n\n\n<p>USE [Northwind]<br>GO<br>CREATE USER [Jose] FOR LOGIN  [ServerLondres\\TrainerSQLWin]<br>WITH DEFAULT_SCHEMA=[dbo]<br>GO<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Usuarios de Base de datos Conceptos&nbsp; El usuario de la base de datos es la identidad del inicio de sesi\u00f3n cuando est\u00e1 conectado a una base de datos. El usuario de la base de datos puede utilizar el mismo nombre que el inicio de sesi\u00f3n, pero no es necesario. El usuario es la entidad de &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/manualsqlserver.com\/?p=561\">Seguir leyendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":1346,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,4,10],"tags":[12,17,21,26,33,53,62],"class_list":["post-561","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-crearbd","category-consultasdedatos","category-seguridad","tag-alter-user","tag-create-login","tag-create-user","tag-deny","tag-grant","tag-sqlserver","tag-usuarios","nodate","item-wrap"],"_links":{"self":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=561"}],"version-history":[{"count":2,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/561\/revisions"}],"predecessor-version":[{"id":2541,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/posts\/561\/revisions\/2541"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=\/wp\/v2\/media\/1346"}],"wp:attachment":[{"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manualsqlserver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}