database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6764 게시물 읽기
No. 6764
저장프로시저로 테이블 및 뷰 생성하기
작성자
윤동희(abled)
작성일
2013-11-25 16:17
조회수
9,535

 안녕하세요. 오랜만에 난관에 부딧쳐서 고움을 청하게 되었습니다. 

 

db를 사용하는 프로그램이 있는데 로그가 많아서 로그데이블을 월별로 생성하고 있습니다. 

월별 로그 테이블을 생성하기 위해선 테이블 생성 권한이 있어야 하는데, 사이트에서 우리가 쓰는 계정의 DDL 권한을 제거하겠다고 하네요.

그래서 테이블을 생성하는 저장프로시저를 미리 만들어놓고 외부에서 실행하면 되겠다 생각했는데

저장 프로시저의 경우에는 create table 나 create view 를 못쓴다고 나오네요.

그래서 검색해보니 동적쿼리로 프로스저 내에서 쿼리를 만들면 저장프로시저에서 테이블이나 뷰를 생성할 수 있다고 하는데,

프로시저에서의 동적 쿼리는 현재 사용자의 권한으로 실행 되기 때문에 DDL 권한이 없는 계정으로는 생성할 수 없다고 나오네요.

 

우리 프로그램은 매달 테이블을 생성해야하는데, 사이트에서는 DDL 권한을 제거하겠다고 하는 상황에서 

우리에게 어떤 권한이 필요하고, 어떤 방식으로 하라고 제시를 해야하는지 조언 부탁드립니다. 

 

뷰는 확실히 생성이 안된다고 msdn에 나와있긴 한데 table은 모르겠네요. 우리는 둘 다 만들어야 하는 상황인데 말입니다. 

이 글에 대한 댓글이 총 2건 있습니다.

DDL 권한이 없다면 생성할 수 없습니다.

단, DDL 권한이 있는 사용자로 실행할 수 있도록 EXECUTE AS 를 넣어서 procedure를 생성하는 등의 방법이 있기는 하지만 DDL을 제거하는 관리하는 사람 입장에서 그러한 꼼수를 만들어 줄 이유는 없을 것으로 생각됩니다.

우욱님이 2013-11-26 13:06에 작성한 댓글입니다. Edit

 답변 감사합니다. ^^

create table  이 들어간 저장 프로시저를 만들고 ddl권한을 제외하여 실행하였을 때 create table 권한이 없다라는 오류 메시지가 나오더군요. 

다른 꼼수가 있지 않을까 했는데, 확답을 주셔서 깔끔하게 정리가 되었습니다. 

사이트에는 ddl 권한이 없으면 안된다고 얘기해야겠습니다. 

 

 

윤동희(abled)님이 2013-11-26 16:49에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6767MSSQL에서 로그인사용자의 기본 언어란? [1]
ms
2013-12-06
7895
6766지난달 큰도움 받고 다시한번 문의드립니다 ㅠㅠ [1]
최보현
2013-12-06
7768
6765컬럼명 바꾸기 [2]
김우성
2013-11-25
7576
6764저장프로시저로 테이블 및 뷰 생성하기 [2]
윤동희
2013-11-25
9535
6763SQLCMD에 관하여 [1]
궁금이
2013-11-21
7531
6762소수점 이하 절삭 문의드립니다. (절삭된 값이 얼마인지 알수 있나?) [9]
최보현
2013-11-20
9387
6761Join에서... [2]
김우성
2013-11-17
7303
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.046초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다