자신의 데이터베이스만 보이게 하기
sql 8.0 은 meta data 를 고쳐야 하고
sql 9.0 이상은 설정이 가능하다.
http://technet.microsoft.com/ko-kr/library/ms189077.aspx
DROP DATABASE DB1
GO
DROP DATABASE DB2
GO
SELECT 'KILL '+CAST(SPID AS VARCHAR) FROM SYSPROCESSES WHERE SPID > 50 AND LOGINAME ='DB1USER'
DROP LOGIN DB1USER
GO
CREATE DATABASE DB1
GO
CREATE DATABASE DB2
GO
CREATE LOGIN [DB1USER] WITH PASSWORD=N'1234', DEFAULT_DATABASE=[MASTER]
GO
ALTER LOGIN DB1USER ENABLE
GO
DENY VIEW ANY DATABASE TO DB1USER
GO
USE DB1
GO
EXEC SP_CHANGEDBOWNER 'DB1USER'
GO
-- db1user 로 로그인해보면 자기 데이터베이스만 보임
-- 아래는 참고
--grant view any database to db1user
--deny view any database to db1user
--grant view any database to public
--revoke view any database from public
열이글~
use master
go
create database db_1
create database db_2
create database db_3
CREATE LOGIN db_2 WITH PASSWORD='1', DEFAULT_DATABASE=db_2
use db_2
go
ALTER AUTHORIZATION ON DATABASE::db_2 to db_2
use db_3
go
ALTER AUTHORIZATION ON DATABASE::db_3 to db_2
use master
go
deny view any database to db_2
-- REVOKE VIEW ANY DATABASE FROM public 방법보다 발전(?)함.
-- 하나 계정으로 여러개 원하는 DB 목록 보이게 가능
-- 단점 하나 DB에 여러 계정 설정 불가능. master, tempdb 가 목록에 나옴.