Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Establecer permisos de visualizacion de bases

Estas en el tema de Establecer permisos de visualizacion de bases en el foro de SQL Server en Foros del Web. Hola que tal tengo el siguiente problema: Tengo varios usuarios registrados en el servidor, donde cada usuario tiene su propia base, sin que pueda tocar ...
  #1 (permalink)  
Antiguo 22/07/2010, 15:58
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 7 meses
Puntos: 3
Establecer permisos de visualizacion de bases

Hola que tal tengo el siguiente problema:

Tengo varios usuarios registrados en el servidor, donde cada usuario tiene su propia base, sin que pueda tocar las que no tiene asignadas, mi pregunta es ¿que necesito hacer para que el usuario solo pueda ver las bases que tiene asignadas?, ya que actualmente el usuario puede ver todas las bases que existen en el servidor, pero solo puede tocar las que diene asignadas.
  #2 (permalink)  
Antiguo 22/07/2010, 17:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Establecer permisos de visualizacion de bases

Alguna vez dije que ESO NO SE PODIA, y me callaron la bocota:

Código SQL:
Ver original
  1. BEGIN
  2.     DECLARE @SQLString nvarchar(500) = ''
  3.     DECLARE @Username VARCHAR(20) = 'nombre_usuario'
  4.     DECLARE @password VARCHAR(20) = 'clave'
  5.     DECLARE @DBName VARCHAR(20) = 'base_datos'
  6.  
  7.     -- Si no existe el usuario lo doy de alta
  8.     IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE [name] = @Username)
  9.         BEGIN
  10.             SET @SQLString = N'create login ' + @Username + ' with password = N'''+ REPLACE(@password, '''', '''''') + ''', DEFAULT_DATABASE=' + QUOTENAME(@DBName) + ', CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF'
  11.             exe sp_executesql @SQLString
  12.             SET @@SQLString  = N'use master; GRANT CONNECT SQL TO ' + QUOTENAME(@Username)
  13.             exe sp_executesql @SQLString
  14.         END
  15.  
  16.     --Deshabilita la posibilidad de ver otra base de datos que no sea master, tempdb o la propia
  17.     SET sp_executesql = N'use master; deny VIEW any DATABASE to ' + @Username
  18.     exe sp_executesql @SQLString
  19. END
  20.  
  21. --Agrega el usuario como dbo a la base de datos
  22. SET @SQLString = @DBName + N'.dbo.sp_changedbowner ' + @Username
  23. exe sp_executesql @SQLString
  #3 (permalink)  
Antiguo 26/07/2010, 10:06
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Establecer permisos de visualizacion de bases

Gracias por la respuesta.
  #4 (permalink)  
Antiguo 26/07/2010, 11:04
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Establecer permisos de visualizacion de bases

De nada, saludos
  #5 (permalink)  
Antiguo 26/07/2010, 11:14
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Establecer permisos de visualizacion de bases

Lo que ahora necesito es que el usuario no sea dbo sino otro que yo cree con ciertos privilegios mi pregunta es ¿como puedo cambiar el dbo por el nombre del usuario que yo cree con los privilegios que le asigne?

Etiquetas: bases, establecer, permisos, visualizacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:35.