๊ณ์ ๋ฐ ๊ถํ, ํ์ผํ๊ฒฝ ์ ๊ฒ ๋ฑ Tibero DBMS ์ด์ฉ๊ณผ ๊ด๋ฆฌ์ ๋ํ ๋ณด์ ์ํ๋ถ์ ๋ฐ ์ํฅ๋, ๊ทธ๋ฆฌ๊ณ ํด๊ฒฐ๋ฐฉ์์ ์ ์ํฉ๋๋ค.
๋ณธ ๋ฌธ์๋ ์ด 5๊ฐ์ ์ฅ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๊ณ์ ๊ด๋ฆฌ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
๊ถํ ๊ด๋ฆฌ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
DBMS ๋ณด์ ์ค์ ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
ํ๊ฒฝ ํ์ผ ์ ๊ฒ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
๐
๋ณด์ ๊ฐ์ฌ ์ค์ ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
๐
ํฐ๋ฒ ๋ก DBMS ๋ณด์ ์ค์ ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
๋ฐ์ดํฐ Dictionary๋ ๋ฌผ๋ฆฌ์ ๋ฐ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ, ๊ฐ์ฒด ์ ์ ๋ฐ ๊ณต๊ฐ ํ ๋น, ์ฌ์ฉ์, ๋ฃฐ, ๊ถํ, ๊ฐ์ฌ ๋ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ฌ์ ํด๋นํ๋ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ผ๋ฏ๋ก ์ฌ์ฉ์ ๋ฐ ์ธ๋ถ๋ก๋ถํฐ ๋ณดํธํด์ผ ํฉ๋๋ค.
๋ณดํธ๋์ง ์์ ๊ฒฝ์ฐ ๋๊ตฌ๋ DROP ANY TABLE ๋ช ๋ น์ด๋ก ๋ฐ์ดํฐ Dictionary์ ๋ด์ฉ์ ์ญ์ ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ Dictionary ์ ๋ณด์ ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
Tibero๋ ํด๋น ๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ํด๋น์ฌํญ์ด ์์ต๋๋ค.
Listener logging ๊ธฐ๋ฅ์ด ํ์ฑํ ๋์ด์์ง ์์ผ๋ฉด ๊ณต๊ฒฉ์์ ์ํ ์ ์์ ์ธ Listener command ์ฌ์ฉ ๋๋Listener ํจ์ค์๋๋ฅผ ์์๋ด๊ธฐ ์ํ Brute Force ๊ณต๊ฒฉ์ ํ์ ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์นจํด ์ฌ๊ณ ๋๋ ์ฅ์ ๋ฐ์์ ๊ฒฝ์ฐ ์์ธ ํ์ ์ด ์ด๋ ต์ต๋๋ค.
$TB_HOME/instance/$TB_SID/log/lsnr/trace_list.log ํ์ผ์ ๋ํดํธ๋ก ๋จ๊น๋๋ค.
Listener๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ ์ ์๊ตฌ๋ฅผ ๊ฐ์ํ๋ ํ๋ก์ธ์ค๋ก ํด๋ผ์ด์ธํธ๋ Listener๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ ์ํฉ๋๋ค. Listener ์ค์ ํ์ผ์ Listener๊ฐ ๊ธฐ๋ํ ๋ ์ฝํ์ ธ ํด๋ผ์ด์ธํธ์ ์ ๊ทผ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ ์ ์์ ์ธ ์ฌ์ฉ์์ ์ํด ์ฌ์ฉ๋ ๊ฒฝ์ฐ ์๊ฒฉ์ผ๋ก Listener์ ๊ตฌ์ฑ ์ค์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋ฒํผ ์ค๋ฒํ๋ก์ฐ, ์ ๋ณด ์ ์ถ, ์ ์์ ์ธ ๋ชฉ์ ์ผ๋ก ํ์ผ์ ๋ณ์กฐํ ์ ์์ต๋๋ค.
Tibero๋ Oracle๊ณผ ์ํคํ ์ฒ ์ฐจ์ด๋ก Listener๊ฐ ๋ณ๋๋ก ์กด์ฌํ์ง ์์ต๋๋ค.
๋ฐฑ์ ๊ด๋ฆฌ๋ฅผ ํตํด ์ฅ์ ๋ฐ ์ธ๋ถ ์นจ์ ์ ๋ํด์ ๋๋นํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฅ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๋ณต๊ตฌ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ฐฑ์ ์ ์ฑ ์ ์๋ฆฝํ์ฌ ์ฃผ๊ธฐ์ ์ธ ๋ฐฑ์ ๋๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฏธ๋์ด์ ๋ณต์ฌ๋ณธ์ ๋ณด์ ํ๊ณ ์์คํ ์ ์ง ๋ณด์, Upgrade, Migration ๋ฑ์ ์๋น์ค ์ดํด ๋ฐ ์์ ์์ ์ ๊ฒฝ์ฐ๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์๊ฐ๊น์ง์ ๋ฐฑ์ ๋ณธ์ ๋ณด์ ํฉ๋๋ค.
์นจํด ์ฌ๊ณ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ๊ณ์ ๋ณ ์ํ Query์ ์์คํ ๋ฐ ์์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๋ก๊ทธ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์นจํด ์ฌ๊ณ ๋๋ ์ฅ์ ๋ฐ์์ ๊ฒฝ์ฐ ์์ธ ํ์ ์ด ์ด๋ ต์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ํ๋ ๊ฐ์ข ๋ก๊ทธ๋ ์๊ฒฉ์ง ๊ด๋ฆฌ ์์คํ ์ ํตํด ์ผ์ ๊ธฐ๊ฐ(3๊ฐ์ ์ด์) ์ ์ฅ ๊ด๋ฆฌํ์ฌ ํน์ด์ฌํญ์ด ๋ฐ์ํ ๊ฒฝ์ฐ ์ํํ ๋ถ์์ด ๊ฐ๋ฅํ๋๋ก ์ง์ํด์ผ ํฉ๋๋ค.
UTL_FILE, UTL_SMTP ๋ฑ ์ฌ๋ฌ PL/SQL ํจํค์ง๋ ์์คํ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํฅ์ ๋ฏธ์น๋ ์ทจ์ฝ์ ์ ๊ฐ์ง๊ณ ์ ์ผ๋ฏ๋ก ํด๋น ํจํค์ง์ ์ฌ์ฉ ๊ถํ์ด Public์ ๋ถ์ฌ๋๋ ๊ฒ์ ์ ํํด์ผ ํฉ๋๋ค.
ํ์ผ ์์คํ ์ ์ ๊ทผ ๋๋ ๋ด๋ถ ํ์ผ์ ์ธ๋ถ ์ ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
์๋์ ๊ฐ์ ํจํค์ง์ ์คํ ๊ถํ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ Public role์์ โ์คํ ๊ถํโ์ ์ ๊ฑฐํฉ๋๋ค.
UTL_HTTP, UTL_FILE, DBMS_RANDOM, DBMS_LOB, DBMS_SQL, DBMS_JOB,
DBMS_OBFUSCATION_TOOLKITSQL> REVOKE EXECUTE ON <ํจํค์ง๋ช
> FROM PUBLIC;ํฐ๋ฒ ๋ก DB ๋ณด์ ๊ฐ์ฌ ์ค์ ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
์ผ๋ฐ ๊ณ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ฆฌ ๋ฐ ํต๊ณ ๋ฑ์ Meta ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ System Catalog์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ํ๋ํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ System Catalog ์ ๋ณด ์ ์ถ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ Meta ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์๋ System Catalog๋ ์์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ง ์ฌ์ฉํ ์ ์๋๋ก ์ค์ ํฉ๋๋ค.
REVOKE <privilege> ON <system catalog object> FROM PUBLIC;์๊ฒฉ ์๋ฒ๋ก๋ถํฐ DBMS ์ ๋ณด๊ฐ ๋ ธ์ถ๋ ์์์ต๋๋ค.
์ธ๊ฐ๋์ง ์์ IP ์ฃผ์ ์ฌ์ฉ์์๊ฒ ์ ๋ณด ์ ์ถ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
$TB_SID.tip ํ์ผ์ ์๋์ ํญ๋ชฉ๋ค์ ์ ์ํ์ฌ ์ ๊ทผ ํ์ฉ ๋ฐ ์ ๊ทผ ์ ํ IP ์ฃผ์๋ฅผ ์ง์ ํฉ๋๋ค.
LSNR_INVITED_IP
LSNR_DENIED_IP
LSNR_INVITED_IP_FILE
LSNR_DENIED_IP_FILE๋ค์์ LSNR_INVITED_IP ํญ๋ชฉ์ ๋ฑ๋ก ์์ ์ ๋๋ค.
LSNR_INVITED_IP="192.168.20.0/24;192.168.10.101"์์ ๊ฐ์ด ๋ฑ๋กํ๋ฉด $TB_HOME/instance/$TB_SID/log/lsnr/trace_list.log ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฑ๋ก๋ฉ๋๋ค.
*** listener started and got into main loop ***
[INVITED-IP] 192.168.20.0 / 255.255.255.0
[INVITED-IP] 192.168.10.101 / 255.255.255.255๋ค์์ LSNR_INVITED_IP_FILE ํญ๋ชฉ์ ๋ฑ๋ก ์์ ์ ๋๋ค.
์์ ๊ฐ์ด ๋ฑ๋กํ ํ LSNR_INVITED_IP_FILE ํญ๋ชฉ์ ๋ฑ๋กํ ํ์ผ(invited.list)์ ํ์ฉํ IP ์ฃผ์ List๋ฅผ ์์ฑํฉ๋๋ค.
DB Link๋ ํด๋ผ์ด์ธํธ ๋๋ ํ์ฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋คํธ์ํฌ ์์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ๊ธฐ ์ํ ์ ์์ค์ ์ ์ ์ํ๋ Tibero ๊ฐ์ฒด์ ๋๋ค.
ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ DB Link๊ฐ ์ํธํ๋์ง ์์ผ๋ฉด ์๊ฒฉ ์๋ฒ์ ์ ๊ทผํ ๊ฒฝ์ฐ ํจ์ค์๋์ ๊ฐ์ ์ค์ ์ ๋ณด๊ฐ ๋ ธ์ถ๋ ์ ์์ต๋๋ค.
์ ์๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์ค๋ํ ๋ฑ์ ๋คํธ์ํฌ ๊ณต๊ฒฉ์ ํตํด ํจ์ค์๋๋ฅผ ๋ ธ์ถํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
Tibero๋ DB Link๋ฅผ ์ค์ ํ ๋ ์๊ฒฉ ์๋ฒ์ ํจ์ค์๋๊ฐ ์ํธํ๋๋ฏ๋ก ํด๋น์ฌํญ์ด ์์ต๋๋ค.
๊ฐ์ฌ๋ฅผ ์ํํ ์ ์๊ฒ ์ค์ ํ์ฌ ์ฌ์ฉ์์ ์ํ ๋ฌธ์ฅ, ๊ถํ, ๊ฐ์ฒด์ ๋ํด ๊ฐ์ฌ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์นจํด ์ฌ๊ณ ๋ฐ ์ฅ์ ๊ฐ ๋ฐ์ํ ๋ ๊ฐ์ฌ ์๋ฃ๋ฅผ ์ด์ฉํ์ฌ ์ ํํ ๋ถ์์ ํ ์ ์์ต๋๋ค.
์นจํด ์ฌ๊ณ ๋๋ ์ฅ์ ๋ฐ์์ ๊ฒฝ์ฐ ์์ธ ํ์ ์ด ์ด๋ ต์ต๋๋ค.
๊ฐ์ฌ๋ฅผ ํ์ฑํํ๊ธฐ ์ํ์ฌ TIP ํ์ผ์ 'AUDIT_TRAIL'์ ๊ฐ์ { NONE | DB | DB_EXTENDED | OS } ์ค์์ ํ๋ ์ ํํฉ๋๋ค.
๋ค์์ $TB_HOME/config/$TB_SID.tip ํ์ผ์ ์ค์ ์์ ์ ๋๋ค.
๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ์ฝ๊ธฐ, ์ฐ๊ธฐ ํ ์ ์๋ ๊ฒฝ์ฐ ์๋ฒ์ ์ค์ ์ ๋ณด๊ฐ ๋ ธ์ถ๋ ์ํ์ฑ์ด ์์ต๋๋ค.
๋น์ธ๊ฐ ์ฌ์ฉ์์ ์ํ ํ์ผ์ ๋ณ์กฐ ๋ฐ ๋ ธ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
AUDIT_FILE_DEST์ ์ค์ ๋ ๊ฒฝ๋ก์ ๋๋ ํฐ๋ฆฌ ๊ถํ์ 750 ๋๋ 700 ์ดํ๋ก ์ค์ ํฉ๋๋ค.
LSNR_INVITED_IP_FILE="/home/tibero/tibero7/invited.list"# WAS_JEUS
192.168.22.20
192.168.44.10
### END OF FILE ####AUDIT Setting
AUDIT_TRAIL=OS
AUDIT_SYS_OPERATIONS=Y
AUDIT_FILE_DEST=/tibero/tbdata/audit/๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ ๊ด๋ฆฌ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
๊ฐ๋ฐ ์์คํ ๊ณผ ์ด์ ์์คํ ์ ํ๋์จ์ด์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ Link๊ฐ ์ค์ ๋์ง ์์์ผ ํ๋ฉฐ, ์ด์ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฐ ์์คํ ์ผ๋ก ์ด์ ํ ๋ ์ค์ ๋ฐ์ดํฐ์ ์ญ์ ๊ฐ์ ํต์ ์ ๊ฒ์ฆ ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
์ด์ ์์คํ ์ ์ค์ ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ฐ ์์คํ ์ผ๋ก ๋์ถ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
๊ฐ๋ฐ ์์คํ ๊ณผ ์ด์ ์์คํ ์ ๋ถ๋ฆฌ๋ฅผ ํ์ฌ์ ์ ์ฑ ์ผ๋ก ์ ์ํ๊ณ ๊ฐ๋ฐ์์ ์ด์์๋ฅผ ์์น์ ์ผ๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๋ง์ฝ ๋ถ๋ฆฌํ ์ ์๋ค๋ฉด ๊ฐ๋ฐ์๊ฐ ์ด์ ์์คํ ์ ์ ๊ทผํ ๊ฒฝ์ฐ ํต์ ์ ์ฐจ๋ฅผ ๊ฑฐ์น๋๋ก ํด์ผ ํฉ๋๋ค.
์ธ๊ฐ๋์ง ์์ ์ฌ์ฉ์๊ฐ DBA ๊ถํ์ผ๋ก DBMS๋ฅผ ์ค์ฉ ๋ฐ ๋จ์ฉํ ์ ์์ต๋๋ค.
DBA ๊ถํ์ ์ฌ์ฉํ์ฌ ์์คํ ์ฅ์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ์กฐํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
DBA ๊ถํ์ด ์๋ ๊ณ์ ์ ์ฌ์ฉ์์ ํ์์ฑ์ ํ์ธํฉ๋๋ค. ๋ง์ฝ ๋ถํ์ํ๊ฒ DBA ๊ถํ์ด ํ์ฉ๋ ๊ณ์ ์ด ์๋ค๋ฉด ๊ณ์ ์ ์์ ๊ฑฐ๋ DBA ๊ถํ์ ์ ๊ฑฐํ๊ณ ๋ฐ์ดํฐ ๋์ถ ๋ฐ ์ ์ค์ ๋ง๊ธฐ ์ํด ๋ณด์ ์ ์ฑ ์ ์๋ฆฝํฉ๋๋ค.
๋ค์์ DBA ๊ถํ ์ ๊ฑฐ ๋ฐฉ๋ฒ์ ๋๋ค.
SQL> REVOKE DBA FROM <username>;์ ์๋ ค์ง ๋ํดํธ ๊ณ์ ๊ณผ ๋ํดํธ ํจ์ค์๋๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๋๋ ์์ ๊ถํ์ ํ๋ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ด๋, ์์ , ์ญ์ ํ ์ ์์ต๋๋ค.
OS, DB ๋ ๋ฒจ์์ ์์ฒ์ ์ผ๋ก ์ ๊ทผ์ ์ ํํ๊ธฐ ์ํด ์ฌ์ฉํ์ง ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ ์ ์ญ์ ํฉ๋๋ค.
๊ณ์ ์ ๋ค๋ฅธ ์ฉ๋๋ก ์ฌ์ฉํ๊ณ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ๋ง ์ ํํด์ผ ํ๋ ๊ฒฝ์ฐ SUPER USER ๋๋ ์ค์น ๊ณ์ ์ GROUP์์ ์ญ์ ํฉ๋๋ค.
๋ํดํธ ์์ฑ DB ์ฌ์ฉ์(SYSCAT, SYSGIS, OUTLN, TIBERO, TIBERO1)์ ๋ํดํธ ํจ์ค์๋๋ฅผ ์ด์ฉํ์ฌ ์ธ๊ฐ๋ ์ง ์์ ์ฌ์ฉ์๊ฐ DBMS์ ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ ๋ฐ ์์ ๊ถํ์ ํ๋ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ด๋, ์์ , ์ญ์ ํ ์ ์์ต๋๋ค.
์ฌ์ฉํ์ง ์๋ ๋ํดํธ DB ๊ณ์ ์ ์ญ์ ํ๊ฑฐ๋ Lock ์ํค๊ณ , ์ฌ์ฉํ๋ ๊ณ์ ์ด๋ผ๋ฉด ๋ํดํธ ํจ์ค์๋๋ฅผ ์์ ํฉ๋๋ค.
๋ฌด์ ํ์ผ๋ก ๋ก๊ทธ์ธ ์๋๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ Brute Force ๊ณต๊ฒฉ์ผ๋ก ๋ฌด์ ํ ๋ก๊ทธ์ธ ์๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Brute Force ๊ณต๊ฒฉ์ ํผํด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ก๊ทธ์ธ ์คํจ ํ์๋ฅผ ์ค์ ํ๋ FAILED_LOGIN_ATTEMPTS ํญ๋ชฉ์ ์ค์ ํ์ฌ ์ผ์ ํ์๋ก ๋ก๊ทธ์ธ์ ์คํจํ ๊ฒฝ์ฐ ๊ณ์ ์ด Lock ๋๊ฒ ํฉ๋๋ค.
profile์ ์ฌ์ฉ์ ํจ์ค์๋ ๊ด๋ฆฌ ์ ์ฑ ์ ๋ค์ํ๊ฒ ์์ฑํ๊ณ ๊ฐ๊ฐ์ ์ฌ์ฉ์์๊ฒ ํน์ ์ ์ฑ ์ ์ฌ์ฉํ๋๋ก ์ง์ ํจ์ผ๋ก์จ ์ฌ์ฉ์๋ณ๋ก ๊ทธ๋ฃนํ๋ ํจ์ค์๋ ์ ์ฑ ์ ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ ์์ ์ธ ์ฌ์ฉ์์ Brute Force ๊ณต๊ฒฉ์ผ๋ก ๋ฌด์ ํ ๋ก๊ทธ์ธ ์๋๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Brute Force ๊ณต๊ฒฉ์ ํผํด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
ํจ์ค์๋ Lock ๊ธฐ๊ฐ์ ์ค์ ํ๋ PASSWORD_LOCK_TIME ํญ๋ชฉ์ ์ค์ ํ์ฌ ์ผ์ ์๊ฐ๋์ ๋ก๊ทธ์ธ์ ํ ์ ์๋๋ก ๊ณ์ ์ด Lock ๋๊ฒ ํฉ๋๋ค. (๊ธฐ๋ณธ๊ฐ : UNLIMITED, ๊ถ์ฅ๊ฐ : 1 ๋๋ 2 ๋๋ 24)
DBA_USERS ๊ณ์ ์ ๋ํด ์ฃผ๊ธฐ์ ์ผ๋ก ํจ์ค์๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ทจ์ฝํ ํจ์ค์๋๋ก ์ค์ ํ ๊ฒฝ์ฐ ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์์๊ฒ DBA ๋๋ USER ๊ถํ์ ์ค ์ ์์ต๋๋ค.
๊ถํ์ด ๋ ธ์ถ๋์ด ๋จ์ฉ๋ ์ ์์ต๋๋ค.
profile์ PASSWORD_LIFE_TIME ํญ๋ชฉ ์ค์ ๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค. (๊ธฐ๋ณธ๊ฐ : UNLIMITED, ๊ถ์ฅ๊ฐ : 30 ~ 90days)
profile ๋ณ๊ฒฝ
DBA_USERS ๊ณ์ ์ ํจ์ค์๋๋ฅผ ๋ณ๊ฒฝํ ๋ ํจ์ค์๋ ์ฌ์ฌ์ฉ ๊ธฐ๊ฐ์ ์ค์ ํ์ง ์๊ณ ๋์ผ ํจ์ค์๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์์๊ฒ DBA ๊ถํ์ ์ค ์ ์์ต๋๋ค.
๊ถํ์ด ๋ ธ์ถ๋์ด ๋จ์ฉ๋ ์ ์์ต๋๋ค.
PASSWORD_REUSE_TIME์ ์ง์ ํ ๋ ์ง ๋์์๋ ์ ์ ์ฌ์ฉํ๋ ํจ์ค์๋๋ฅผ ์ฌ์ฌ์ฉํ์ง ๋ชปํ๊ฒ profile์ PASSWORD_REUSE_TIME ํญ๋ชฉ ์ค์ ๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค. (๊ธฐ๋ณธ๊ฐ : UNLIMITED, ๊ถ์ฅ๊ฐ : 30 ~ 90 days)
profile ๋ณ๊ฒฝ
SQL> ALTER USER <username> ACCOUNT LOCK;SQL> ALTER USER <username> IDENTIFIED BY โ<new_password>โ;SQL> CREATE PROFILE <profile_name>
ย ย LIMIT PASSWORD_VERIFY_FUNCTION verify_function
ย ย FAILED_LOGIN_ATTEMPTS <ํ์>;SQL> ALTER PROFILE <profile_name> LIMIT FAILED_LOGIN_ATTEMPTS <ํ์>;SQL> ALTER USER <username> PROFILE <profile_name>;SQL> ALTER PROFILE <profile_name> LIMIT PASSWORD_LOCK_TIME <์๊ฐ>;SQL> ALTER USER <username> PROFILE <profile_name>;SQL> ALTER PROFILE <profile_name> LIMIT PASSWORD_LIFE_TIME <์ผ์>;SQL> ALTER USER <username> PROFILE <profile_name>;SQL> ALTER PROFILE <profile_name> LIMIT PASSWORD_REUSE_TIME <์ผ์>;SQL> ALTER USER <username> PROFILE <profile_name>;ํฐ๋ฒ ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๊ฒฝ ํ์ผ ์ ๊ฒ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
Tibero๋ฅผ ์ฌ์ฉํ์ฌ DBMS์ ์ ๊ทผํ ๊ฒฝ์ฐ ๋ช ๋ น์ด ํ์ ๊ณ์ ๋ฐ ํจ์ค์๋๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํ๋ฉด ์ ํ์คํ ๋ฆฌ (.history ๋๋ .sh_history) ํ์ผ์ ์ฌ์ฉํ ๊ณ์ ๊ณผ ํจ์ค์๋์ ๊ธฐ๋ก์ด ๋จ์ต๋๋ค.
๊ณ์ ๋ฐ ํจ์ค์๋๊ฐ ์ ์ถ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
Tibero ๋ช ๋ น์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ช ๋ น์ด ํ์ ๊ณ์ ๊ณผ ํจ์ค์๋๋ฅผ Line Mode๊ฐ ์๋ Interactive Mode๋ก ์คํํฉ๋๋ค. ์ ํ์คํ ๋ฆฌ(.history ๋๋ .sh_history) ํ์ผ์ ๋ํ ๋ณดํธ๋ฅผ ์ํ์ฌ ์ ๊ทผ ๊ถํ ์ค์ ์ 600์ผ๋ก ์ค์ ํฉ๋๋ค.
$ tbsql <username>/<password>๋ก ์ ์ํ์ง ์์ต๋๋ค.
UTL_FILE_DIR์ UTL_FILE์ ํตํด ํธ์คํธ์ ํ์ผ ์์คํ ์ ๊ทผ ํ์ฉ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ํํฉ๋๋ค.
๋ง์ฝ UTL_FILE_DIR์ ์ค์ ๊ฐ์ด '*'๋ก ์ค์ ๋ ๊ฒฝ์ฐ ์ ์ฒด ํ์ผ ์์คํ ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ฏ๋ก '*'๋ก ์ค์ ํ ๊ฒฝ์ฐ์๋ ๋งค ์ฐ ์ ํ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค.
ํธ์คํธ์ ์ ์ฒด ํ์ผ ์์คํ ์ ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.
'*' ์ค์ ๊ฐ์ ์ ๊ฑฐํฉ๋๋ค.
UTL_SMTP ํจํค์ง๋ฅผ Public ๊ทธ๋ฃน์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ถํ์ ๋ถ์ฌํ๋ฉด ํ๊ฐ๋ฐ์ง ์์ ๋ฉ์ผ์ ์ ์ก์ด ๋ฐ์ ํ ์ ์์ต๋๋ค.
์์คํ ๋ด๋ถ์ ํ์ผ์ ์ธ๋ถ๋ก ์ ์กํ ์ ์์ต๋๋ค.
Public ๊ทธ๋ฃน๊ณผ ๊ฐ์ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌํ์ง ์๊ณ ํน์ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌํ์ฌ ํด๋น ์ฌ์ฉ์์๊ฒ๋ง ๋ฉ์ผ์ด ์ ์ก๋ ์ ์๊ฒ ํฉ๋๋ค.
Tibero DBMS๋ฅผ ์ด๊ธฐ์ ์ค์นํ ๊ฒฝ์ฐ ๋ํดํธ๋ก ํฌํจ๋๋ Sample DB(TEST DB)๋ฅผ ์ ๊ฑฐํ์ฌ DBMS ์ด์์ ๋ณด ๊ด๋ จ ๊ณต๊ฒฉ์ด ์นจํฌํ ๋ ํ๊ฒฝ ์ ๋ณด๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด์ ํ๊ฒฝ์ ๋ณด ๋ ธ์ถ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
Sample DB๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
Tibero์ ์ค์ ํ์ผ ์ค์ ํ๋์ธ initialization ํ์ผ์ ๋ณ๊ฒฝ์ผ๋ก ์์คํ ์ฅ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
DB ๊ธฐ๋ ๋ฐ ์ด์์ ์ํ์ ์ธ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
$ chmod 640 $TB_HOME/config/$TB_SID.tip ํ์ผ์ ์ ๊ทผ ๊ถํ์ ์ค์ ํฉ๋๋ค. (๊ถ์ฅ๊ฐ : 600 ๋๋ 640)
Tibero์ ์ค์ ํ์ผ์ธ Control ํ์ผ, Redo ๋ก๊ทธ ํ์ผ, ๋ฐ์ดํฐ ํ์ผ์ ์ญ์ ๋ฐ ๋ณ๊ฒฝ์ผ๋ก ์์คํ ์ฅ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
DB ์ด์ ์ ์ง ๋ฐ ๋ฐ์ดํฐ์ ์ ์ค ์ํ์ด ์์ต๋๋ค.
Control ํ์ผ, Redo ๋ก๊ทธ ํ์ผ, ๋ฐ์ดํฐ ํ์ผ์ ์ ๊ทผ ๊ถํ์ ์ค์ ํฉ๋๋ค. (๊ถ์ฅ๊ฐ : 600 ๋๋ 640)
์ ๊ทผ ๊ถํ์ 640์ผ๋ก ์ค์ ํ ๊ฒฝ์ฐ
$ chmod 640 [Control ํ์ผ|Redo ๋ก๊ทธ ํ์ผ|๋ฐ์ดํฐ ํ์ผ]DB ๊ถํ ๊ด๋ฆฌ์ ๋ํ ์ํ ๋ถ์, ์ํ ์ํฅ, ํด๊ฒฐ ๋ฐฉ์์ ์ค๋ช ํฉ๋๋ค.
๊ฐ๋ฐ ์์คํ ๊ณผ ์ด์ ์์คํ ์ ํ๋์จ์ด์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ Link๊ฐ ์ค์ ๋์ง ์์์ผ ํ๋ฉฐ, ์ด์ ์์คํ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฐ ์์คํ ์ผ๋ก ์ด์ ํ ๋ ์ค์ ๋ฐ์ดํฐ์ ์ญ์ ๊ฐ์ ํต์ ์ ๊ฒ์ฆ ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
์ด์ ์์คํ ์ ์ค์ ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ฐ ์์คํ ์ผ๋ก ๋์ถ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
๊ฐ๋ฐ ์์คํ ๊ณผ ์ด์ ์์คํ ์ ๋ถ๋ฆฌ๋ฅผ ํ์ฌ์ ์ ์ฑ ์ผ๋ก ์ ์ํ๊ณ ๊ฐ๋ฐ์์ ์ด์์๋ฅผ ์์น์ ์ผ๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๋ง์ฝ ๋ถ๋ฆฌํ ์ ์๋ค๋ฉด ๊ฐ๋ฐ์๊ฐ ์ด์ ์์คํ ์ ์ ๊ทผํ ๊ฒฝ์ฐ ํต์ ์ ์ฐจ๋ฅผ ๊ฑฐ์น๋๋ก ํด์ผ ํฉ๋๋ค.
DBA๊ฐ SYS ํจ์ค์๋๋ฅผ ์ ๋ ฅํ์ง ์๊ณ ์ ๊ทผํ๋ฉด ๊ทธ๋ฃน์ ๊ฐ์ง ๋ฉค๋ฒ๋ค์ด SYS ๊ถํ์ผ๋ก ๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๋ฏ๋ก SYS ์ํธ๋ฅผ ๋ฐ๋์ ์ ๋ ฅํด์ผ ํฉ๋๋ค.
์ธ์ฆ ์์ด SYS ๊ถํ ํ๋์ด ๊ฐ๋ฅํฉ๋๋ค.
Tibero์๋ Oracle์ sqlplus /as sysdba์ ๊ฐ์ ์ ์ ๋ฐฉ๋ฒ์ด ์์ผ๋ฏ๋ก ํด๋น์ฌํญ์ด ์๋ค.
Listener๋ฅผ ๊ตฌ๋ ๋๋ ์ค์งํ๋ ์์ ์ DBA์ ๊ฐ์ ํน๊ถ์์๊ฒ๋ง ๋ถ์ฌํ๋ฉฐ Listener์ ๋ํ ์ ๊ทผ ํต์ ๋ฅผ ์ํดListener ์ ๊ทผ ํจ์ค์๋๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
๋น์ธ๊ฐ์์ Listener ์ ๊ทผ์ด ๊ฐ๋ฅํฉ๋๋ค.
Tibero๋ Listener์ ์๋ฒ ํ๋ก์ธ์ค๊ฐ ๋์์ ๊ธฐ๋๋๊ธฐ ๋๋ฌธ์ ํด๋น์ฌํญ์ด ์์ต๋๋ค.
์ด์์ ์ค์ํ ํ๊ฒฝ ํ์ผ์ ์๋ฌด๋ ์ ๊ทผํด์ ์์ ํ ๊ฒฝ์ฐ ์นจ์ ์๊ฐ ํ๊ฒฝ ํ์ผ์ ์ด์ด ์ค์ ๊ฐ์ ๋ณ๊ฒฝํจ์ผ๋ก์จDB ์ด์์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
์ ์์ ์ธ ๋ชฉ์ ์ผ๋ก ํ์ผ์ ๋ณ์กฐํ ์ ์์ต๋๋ค.
$TB_HOME/config/$TB_SID.tip ํ์ผ์ ํผ๋ฏธ์ ๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค. (๊ถ์ฅ๊ฐ : 600 ๋๋ 640)
OS ๊ณ์ ์ ์ํด ์์ ๋ฐ ๊ด๋ฆฌ๋๋๋ก ํ๊ณ ์ผ๋ฐ ๊ณ์ ์ ์ ๊ทผ์ ๊ธ์งํฉ๋๋ค.
์ค์ ํ์ผ์ ๋ถํ์ํ ์์ ๊ถ ๋๋ ๊ทธ๋ฃน ๊ถํ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ ํด๋น ํ์ผ๋ก ์ธํด ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์๊ฐ ์ ๋ณด๋ฅผ ํ๋ํ ์ ์์ต๋๋ค.
์์คํ ๋๋ ๋คํธ์ํฌ ํ๊ฒฝ์ค์ ํ์ผ์ ๊ถํ์ด ์ทจ์ฝํ๊ฒ ์ค์ ๋์ด ์๊ฑฐ๋ Tibero ์ฌ์ฉ์๊ฐ ์์ ๊ถ์ ๊ฐ์ ธ์ผ ํ๋ ํ์ผ์ ๊ถํ์๋ ์ฌ์ฉ์๊ฐ ์์ ํ๋ค๋ฉด๋น์ธ๊ฐ์๊ฐ ์์คํ ๊ถํ์ ํ๋ํ๊ฑฐ๋ ์ค์ ๋ฐ์ดํฐ๋ฅผ ํ๊ดดํ ์ ์์ต๋๋ค.
$TB_HOME/client/config/tbdsn.tbr ํ์ผ์ ํผ๋ฏธ์ ๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค. (๊ถ์ฅ๊ฐ : 600 ๋๋ 640)
Object์ ์ฌ์ฉ ๊ถํ์ Public์ ๋ถ์ฌํ๋ฉด Object ์ฌ์ฉ ๊ถํ์ด ์๋ ๋ชจ๋ ๊ณ์ ์ด ํด๋น Object์ ์ ๊ทผ ๊ฐ๋ฅํ๊ณ Object์ ์ ๋ณด๋ฅผ ํ๋ํ ์ ์์ต๋๋ค.
์๋ก ์์ฑ๋ ๊ณ์ ์ Object ์ฌ์ฉ ๊ถํ์ด Public์ ๋ถํ์ํ๊ฒ ๋ถ์ฌ๋ ๊ฒฝ์ฐ ๊ถํ ๋จ์ฉ์ ์ํ์ด ์์ต๋๋ค.
Object์ ์ฌ์ฉ ๊ถํ์ด ๋ถํ์ํ๊ฒ Public์ ๋ถ์ฌ๋ ๊ฒฝ์ฐ ๊ถํ์ ์ ํํฉ๋๋ค.
๋ค์์Public์ผ๋ก๋ถํฐ ๊ถํ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
GRANT ์ต์ ๊ณผ ํจ๊ป ๊ถํ์ ๋ฐ์ ์ฌ์ฉ์๋ ํด๋น ๊ถํ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌํ ์ ์์ต๋๋ค.
๋ถํ์ํ๊ฒ GRANT ์ต์ ์ด ๋ถ์ฌ๋ ๊ณ์ ์ด ์๋ ๊ฒฝ์ฐ ๊ถํ ๋จ์ฉ์ ์ํ์ด ์์ต๋๋ค. (๋จ, ๋ด๋น์๊ฐ ํ์ธํ์ฌ ๊ถํ์ด ํ์ํ๋ค๊ณ ์ธ์ ํ๋ ๊ฒฝ์ฐ๋ ์ ์ธํฉ๋๋ค.)
GRANT ์ต์ ๊ถํ ๋ถ์ฌ๋ DBA๋ง ํ ์ ์๋๋ก ์ ํํฉ๋๋ค. ๋ถํ์ํ๊ฒ GRANT ์ต์ ์ด ๋ถ์ฌ๋ ๊ณ์ ์ ๊ถํ์ ์ ๊ฑฐํ๊ณ GRANT ์ต์ ์์ด ๊ถํ์ ๋ค์ ๋ถ์ฌํฉ๋๋ค.
ADMIN ์ต์ ๊ณผ ํจ๊ป ์์คํ ๊ถํ์ ๋ฐ์ ์ฌ์ฉ์๋ ํด๋น ๊ถํ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌํ ์ ์์ต๋๋ค.
๋ถํ์ํ๊ฒ ADMIN ์ต์ ์ด ๋ถ์ฌ๋ ๊ณ์ ์ด ์๋ ๊ฒฝ์ฐ ๊ถํ ๋จ์ฉ์ ์ํ์ด ์์ต๋๋ค. (๋จ, ๋ด๋น์๊ฐ ํ์ธํ์ฌ ๊ถํ์ด ํ์ํ๋ค๊ณ ์ธ์ ํ๋ ๊ฒฝ์ฐ๋ ์ ์ธํฉ๋๋ค.)
ADMIN ์ต์ ๊ถํ ๋ถ์ฌ๋ DBA๋ง ํ ์ ์๋๋ก ์ ํํฉ๋๋ค. ๋ถํ์ํ๊ฒ ADMIN ์ต์ ์ด ๋ถ์ฌ๋ ๊ณ์ ์ ๊ถํ์ ์ ๊ฑฐํ๊ณ ADMIN ์ต์ ์์ด ๊ถํ์ ๋ค์ ๋ถ์ฌํฉ๋๋ค.
SQL> REVOKE <๊ถํ> ON <object> FROM PUBLICSQL> REVOKE <๊ถํ> ON <object๋ช
> FROM <user_name>;SQL> GRANT <๊ถํ> ON <object๋ช
> TO <user_name>;SQL> REVOKE <๊ถํ> ON <object๋ช
> FROM <user_name>;SQL> GRANT <๊ถํ> ON <object๋ช
> TO <user_name>;