안녕하세요. 이번에는 뷰테이블생성 및 권한설정하는 방법에 대해 알아보겠습니다. 외부시스템에 특정데이터를 제공해줘야 될경우 뷰테이블을 만들고 해당테이블만 조회권한 등을 주는형태로 제공합니다. SQL Management툴을 사용해서 권한주는 방법과 스크립트문을 사용해서 권한주는 방법에 대해 소개해 드리겠습니다.
MSDN상 뷰생성 Syntax입니다. |
docs.microsoft.com/ko-kr/sql/t-sql/statements/create-view-transact-sql?view=sql-server-ver15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-- Syntax for SQL Server and Azure SQL Database
CREATE [ OR ALTER ] VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ]
[ ; ]
<view_attribute> ::=
{
[ ENCRYPTION ]
[ SCHEMABINDING ]
[ VIEW_METADATA ]
}
|
테이블 생성
1
2
3
4
5
6
7
8
9
10
11
|
/* 테이블생성 */
CREATE TABLE [dbo].[MyUser](
[id] [int] IDENTITY(1,1) NOT NULL primary key ,
[name] [varchar](10) NULL,
gender char(1)
)
GO
/* 테스트 데이터삽입 */
insert into MyUser values ('홍길동','F')
insert into MyUser values ('김단비','M')
|
뷰테이블 생성
V_MYUSER 뷰테이블로 만들어 보겠습니다.
1
2
3
4
|
/* 뷰테이블 생성 */
CREATE VIEW V_MYUSER
AS
SELECT * FROM MyUser
|
1. 뷰테이블 조회 권한주기 (SQL Management Studio 사용)
먼저 보안(Security) -< 로그인(Logins)메뉴의 New Login항목을 클릭합니다.
계정명을 test / 비밀번호는 1234로 해서 만들어 보겠습니다.
TEST데이터베이스의 있는 V_MYUSER 뷰테이블에 권한을 주기 위해서는 User Mapping을 해야되면 TEST DB항목을 체크합니다.
V_MYUSER뷰테이블을 선택하고 마우스우클릭 -> 속성(Properties)항목을 클릭합니다.
Perrmision항목에서 Search버튼 -> Browse...버튼을 클릭후 test계정을 선택합니다.
권한을 select권한만 체크한 후 OK버튼을 클릭하면 test계정으로는 V_MYUSER라는 특정뷰테이블에 조회권한만 가능하게 설정이 됩니다.
2. 뷰테이블 조회 권한주기 (스크립트문을 사용하여부여)
스크립트문을 사용해서 부여하는 방법입니다. 로그인계정생성, 데이터베이스계정생성, grant문으로 권한을 부여해주면됩니다. 간단한 조회권한만 줄 경우에는 스크립트문을 사용시 손쉽게 권한을 줄수 있습니다.
1
2
3
4
5
6
7
8
9
10
11
|
/* test 로그인 계정 생성 */
create login test WITH PASSWORD = '1234'
go
/* test database test계정생성 */
use test
go
sp_adduser 'test'
/* test계정에 V_MYUSER 뷰테이블에 조회권한 부여 */
GRANT SELECT ON V_MYUSER TO test
|
'프로그래밍 > DB' 카테고리의 다른 글
[DB] MSSQL 서비스 기본포트(1433) 변경방법 (0) | 2020.10.09 |
---|---|
[DB] MSSQL 중복데이터 확인, 중복값제거 쿼리문 (0) | 2020.10.09 |
[DB] MSSQL sa계정이 갑자기 로그인 안될경우 (0) | 2020.10.05 |
[DB] MSSQL 저장프로시저 예외처리방법(Try Catch .. throw) (0) | 2020.10.02 |
[DB] MSSQL 자동증가열(IDENTITY)사용법 및 주의사항 (0) | 2020.10.01 |