2014년 4월 24일 목요일
Oracle 에서 트리거(trigger)를 이용한 열 자동증분(auto increment) 기능 구현
CREATE TABLE T_API_AUTH
(
SEQ NUMBER (5) NOT NULL ,
KEY VARCHAR2 (20) NOT NULL ,
TITLE VARCHAR2 (200) ,
IPS VARCHAR2 (2000) ,
MEMO VARCHAR2 (4000)
)
;
COMMENT ON TABLE T_API_AUTH IS 'API 인증 정보'
;
COMMENT ON COLUMN T_API_AUTH.SEQ IS '순번'
;
COMMENT ON COLUMN T_API_AUTH.KEY IS '인증키'
;
COMMENT ON COLUMN T_API_AUTH.TITLE IS '제목'
;
COMMENT ON COLUMN T_API_AUTH.IPS IS '인증IP들'
;
COMMENT ON COLUMN T_API_AUTH.MEMO IS '메모'
;
CREATE UNIQUE INDEX T_API_AUTH_KEY_INDEX ON T_API_AUTH
(
KEY ASC
)
;
ALTER TABLE T_API_AUTH
ADD CONSTRAINT T_API_AUTH_PK PRIMARY KEY ( SEQ ) ;
CREATE SEQUENCE T_API_AUTH_SEQ_SEQ
NOCACHE
ORDER ;
CREATE OR REPLACE TRIGGER T_API_AUTH_SEQ_TRG
BEFORE INSERT ON T_API_AUTH
FOR EACH ROW
WHEN (NEW.SEQ IS NULL)
BEGIN
SELECT T_API_AUTH_SEQ_SEQ.NEXTVAL INTO :NEW.SEQ FROM DUAL;
END;
CentOS 6.X에 OpenLDAP 설치 매뉴얼
설치
아래의 명령어를 이용하여 OpenLDAP Server 를 설치합니다.
1
|
yum install -y openldap openldap-servers openldap-clients
|
설정전 준비
root 패스워드 생성
아래의 명령을 이용하여 OpenLDAP 의 암호화된 root 패스워드를 생성한 후 해당 데이터를 임의의 공간에 저장해 놓습니다.
1
|
slappasswd -s <password>
|
정상적을 실행시 아래와 같이 암호화된 패스워드가 출력이 됩니다.
1
|
{SSHA}PEZj3CnwpNAisWStq+Uqy6Hd6ZmEetBG
|
LDIF 파일생성
LDAP 의 기본 구조를 생성하기 위하여 아래와 같이 LDIF (LDAP Data Interchange Format) 파일을 생성합니다.
1
|
vi /root/base.ldif
|
아래와 같이 입력한 후 저장합니다.
/root/base.ldif
Vim
1
2
3
4
5
6
7
8
9
|
dn: dc=beany,dc=co,dc=kr
dc: beany
objectClass: top
objectClass: domain
dn: ou=dev,dc=beany,dc=co,dc=kr
ou: dev
objectClass: top
objectClass: organizationalUnit
|
설정
OpenLDAP
OpenLDAP Server 설정 정보파일을 복사하여 생성합니다.
1
|
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
|
설정파일을 편집합니다.
1
|
vi /etc/openldap/slapd.conf
|
아래와 같이 설정정보를 변경합니다.
/etc/openldap/slapd.conf
Vim
1
2
3
4
5
6
7
8
9
|
#######################################################################
# database definitions
#######################################################################
database bdb
suffix "dc=beany,dc=co,dc=kr"
checkpoint 1024 15
rootdn "cn=Manager,dc=beany,dc=co,dc=kr"
rootpw {SSHA}PEZj1CnwpFAisWStq+Uqy6Hd6ZmEetBG
|
최초 설치시에 있는 설정파일을 삭제한 후 DB_CONFIG 파일을 복사합니다.
1
2
|
rm -rf /etc/openldap/slapd.d/*
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
|
LDIF 파일을 통하여 LDAP 객체를 추가합니다.
1
|
slapadd -v -l /root/base.ldif
|
정상적으로 LDIF 파일 추가시 아래와 같은 메시지가 나타납니다.
1
2
3
4
5
|
The first database does not allow slapadd; using the first available one (2)
added: "dc=beany,dc=co,dc=kr" (00000001)
added: "ou=dev,dc=beany,dc=co,dc=kr" (00000002)
_#################### 100.00% eta none elapsed none fast!
Closing DB...
|
아래의 명령을 실행하여 설정 파일을 생성합니다.
1
|
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
|
정상적으로 명령수행시 아래와 같은 메시지가 나타납니다.
1
|
config file testing succeeded
|
설정폴더의 권한을 변경합니다.
1
2
|
chown ldap.ldap -Rf /etc/openldap/slapd.d/*
chown ldap.ldap -Rf /var/lib/ldap/*
|
방화벽 (iptables)
방화벽 정책파일을 편집합니다.
1
|
vi /etc/sysconfig/iptables
|
LDAP 기본 Port 389 번을 추가시킨후 저장합니다.
/etc/sysconfig/iptables
Vim
1
|
-A INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
|
iptables 서비스를 재시작합니다.
1
|
service iptables restart
|
정상적으로 실행시 아래와 같이 메시지가 출력됩니다.
1
2
3
4
|
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
|
실행
OpenLDAP 를 시작합니다.
1
|
service slapd start
|
OpenLDAP 가 정상적으로 기동시 아래와 같은 메시지가 나타납니다.
1
|
Starting slapd: [ OK ]
|
실행확인
아래의 명령을 이용하여 등록된 LDAP 데이터를 조회합니다.
1
|
ldapsearch -x -b dc=beany,dc=co,dc=kr
|
아래와 같이 등록된 데이터가 출력이 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# extended LDIF
#
# LDAPv3
# base <dc=beany,dc=co,dc=kr> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# beany.co.kr
dn: dc=beany,dc=co,dc=kr
dc: beany
objectClass: top
objectClass: domain
# dev, beany.co.kr
dn: ou=dev,dc=beany,dc=co,dc=kr
ou: dev
objectClass: top
objectClass: organizationalUnit
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
|
서비스 등록
아래의 명령을 이용하여 서버 기동시에 실행될 수 있도록 서비스로 등록합니다.
1
|
chkconfig --level 345 slapd on
|
정상적으로 등록이 되었는지 아래의 명령을 이용하여 확인합니다.
1
|
chkconfig --list slapd
|
아래와 같이 slapd 서비스에 대한 등록 정보가 출력됩니다.
1
|
slapd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
|
출처
- http://blog.beany.co.kr/archives/2743
피드 구독하기:
글 (Atom)