표기법
이 문서의 표기는 크게 콘솔, sqlplus, 파일 내용, 결과를 포함한다.
콘솔은 다음과 같이 ‘$
‘로 시작한다:
$ ls
sqlplus에서 수행할 명령은 다음과 같이 ‘SQL>
‘로 시작한다:
SQL> select * from dual;
파일 내용은 다음처럼 ‘[ … ]‘로 감싼 파일명으로 시작하며, 이 후 처음 나오는 블럭이 해당 파일의 내용이다:
[fileName.c]
printf("Hello, Oracle!\n");
그 외의 것들은 모두 결과다. 결과는 문서의 단순화를 위해 과감히 생략하거나 일부 변형할 수 있다.
시작/종료
시작
$ sqlplus "/as sysdba"
SQL> startup
$ lsnrctl start
종료
$ sqlplus "/as sysdba"
SQL> shutdown
$ lsnrctl stop
scott/tiger 사용하기
테스트 따위를 할 때, 널리 알려져있기 때문에 공유해 쓰기 편한 계정이다. 보통은 이미 만들어져 있으므로 unlock을 해준다.
$ sqlplus "/as sysdba"
SQL> ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;
User altered.
사용자 생성 & 권한 주기
이름을 your_user_name, 비밀번호를 your_password로 할 경우:
$ sqlplus "/as sysdba"
SQL> CREATE user your_user_name IDENTIFIED BY your_password;
SQL> GRANT connect, dba, resource TO your_user_name;
ODBC 사용
[~/.bash_profile]
export ODBCINI=~/.odbc.ini
export ORACLE_HOME=/home1/ora12/db/product/12.1.0/dbhome_1
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
[~/.odbc.ini]
[ora]
Driver = /home/ora12/db/product/12.1.0/dbhome_1/lib/libsqora.so.12.1
UserID = scott
Password = tiger
ServerName = //localhost:1521/orcl
[testOracleODBC.c]
// ...
sRC = SQLDriverConnect( sHdbc, NULL,
(SQLCHAR *)"DSN=ora", SQL_NTS,
NULL, 0, NULL,
SQL_DRIVER_NOPROMPT );
// ...
Troubleshooting
ORA-01950: no privileges on tablespace ‘USERS’
SQL> ALTER USER your_user_name QUOTA UNLIMITED ON USERS;
ORA-28002: the password will expire within ? days
비밀번호 만료 여부 확인
SQL> SELECT account_status, lock_date, expiry_date FROM dba_users WHERE username = 'SCOTT';
ACCOUNT_STATUS LOCK_DATE EXPIRY_DA
-------------------------------- --------- ---------
EXPIRED(GRACE) 04-JUL-19
비밀번호 갱싱
SQL> ALTER USER scott IDENTIFIED BY tiger;
비밀번호 만료 기간 확인
SQL> SELECT limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME';
LIMIT
--------------------------------------------------------------------------------
180
비밀번호 만료 기간 없애기
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;