Estimados;
Mi pregunta es si es posible que los usuarios de mi mssql(2000) al ingresar a administrar su base de datos via Enterprise manager (Administrador Corporativo) no vean las bases de datos de los otros usuarios.
desde ya muchas grax
| ||||
Respuesta: No ver databases de otros usuarios eso depende del usuario con el que se esten conectando. este usuario que dices solo deberia tebner permisos para ver la base de datos a la que tiene acceso, con eso ya no pude entrar a las bases de datos de los demas. |
| ||||
Respuesta: No ver databases de otros usuarios yo nuca dije que entraban a otras bases .. lo que busco es que no vean las ortas bases de mis usuarios. Ese usuario solo puede tocar su base y no la de los demas (asi tiene que ser). Busco que no vea ninguma database que no sea de el. |
| ||||
Respuesta: No ver databases de otros usuarios si se puede. aqui está el codigo
Código:
Begin Declare @dsql varchar(500) = '' Declare @Username varchar(20) = 'nombre_usuario' Declare @password varchar(20) = 'clave' Declare @DBName varchar(20) = 'base_datos' IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE [name] = @Username) Begin Set @dsql ='create login ' + @Username + ' with password = N'''+ REPLACE(@password, '''', '''''') + ''', DEFAULT_DATABASE=' + QUOTENAME(@DBName) + ', CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF' execute (@dsql) set @dsql = 'use master; GRANT CONNECT SQL TO ' + QUOTENAME(@Username) execute( @dsql ) End --Deshabilita la posibilidad de ver otra base de datos que no sea maste tempdb o la propia Set @dsql = 'use master; deny VIEW any DATABASE to ' + @Username --Print @dsql execute (@dsql) End --Agrega el usuario como dbo a la base de datos Set @dsql = @DBName + '.dbo.sp_changedbowner ' + @Username --Print @dsql execute (@dsql) codigo esta probado y ya se utilizo en produccion. Última edición por royrojas; 16/10/2009 a las 16:31 |