2017/09/08

Oracle Database 설정 - Administration Assistant

Oracle 설치 완료후, 설치된 인스턴스의 설정을 변경하고자 하는 경우.
* 물론 쿼리 명령어를 사용해도 되지만, 편리한 도구가 있으면 먼저 활용해 보는것도...

 

 

- Oracle 홈 : 기본 SID, control 파일 위치등 Oracle 작동 환경 설정값 
- OS 데이터베이스 관리자/운영자 (Oracle 제어 가능한 Windows 인증 계정)
- 인스턴스의 시작/정지/옵션/프로세스. Windows 인증 계정, Role 설정

 

ex, 
아래와 같은 오류시 현재 sqlplus 를 실행하는 계정이 윈도우 "ora_dba" 그룹에 포함되어 있지 않아서 권한이 없는 경우로, Administration Assistant 의 "OS 데이터베이스  관리자 - 컴퓨터" 에 계정을 추가해 주면 됨.

SQL> conn /as sysdba;
ERROR:
ORA-01031: insufficient privileges

"ora_dba" 그룹에 기본으로 포함되어 있는 계정 : LocalSystem, Oracle 설치시 사용된 계정

 

 



oracle-Administration-1.png

2017/08/31

MSSQL DB 분리시 연결 해제/차단

여러곳에서 연결을 해서 사용중인 DB 의 분리는, 계속해서 외부나 기타 App 에서 연결을 시도하기 때문에 단일 사용자 모드로 변경해도 오류가 발생하면서 진행되지 않을수 있음.

ALTER DATABASE 대상DB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
=> 다중 접속 서비스의 DB의 경우, 단일로 변경되어도 이미 그 단일 1개 연결이 즉시 되어 있어서 DB 분리 에러가 발생함

메시지 3703, 수준 16, 상태 2, 줄 1
데이터베이스 '대상DB'은(는) 현재 사용 중이므로 분리할 수 없습니다.

 

1. 방화벽을 통해서  SQL Port 를 차단하여 서버 외부 연결 방지
2. MSSQL 서비스외, SQLAgent 등 SQL 관련 다른 서비스를 모두 중지
3. 작업모니터 또는 프로세스 Kill 쿼리를 사용하여 대상 DB 연결 프로세스 모두 종료
4. DB 분리  EXEC sp_detach_db '대상DB', 'true';

 

* 주의 : Management Studio 와 같은 도구 이용시, DB목록을 열거 후  대상 DB를 선택하면 1개 연결이 되버리므로, DB 분리 쿼리문 연결 외  다른 연결이 되지 않도록 주의 필요

 


- 멀티 접속으로 변경시 ALTER DATABASE 대상DB SET MULTI_USER WITH ROLLBACK IMMEDIATE

- 아래와 같은 프로세스 kill 쿼리문과 함께 DB 분리 프로시져 쿼리문을 바로 붙여서 같이 실행

USE [master]
GO
SET NOCOUNT ON

DECLARE @DBName VARCHAR(50);
DECLARE @spidstr VARCHAR(8000);
DECLARE @ConnKilled SMALLINT

SET @ConnKilled = 0
SET @spidstr = ''
SET @DBName = '대상DB'

IF db_id(@DBName) < 4 

BEGIN 
           PRINT 'Connections to system databases cannot be killed'
           RETURN
END

SELECT @spidstr=coalesce(@spidstr,',' )+'kill '+convert(varchar, spid)+ '; '
FROM master..sysprocesses WHERE dbid=db_id(@DBName)

IF LEN(@spidstr) > 0

BEGIN
           EXEC(@spidstr)
           SELECT @ConnKilled = COUNT(1)  FROM master..sysprocesses
           WHERE dbid=db_id(@DBName)
END

 


2017/07/12

MSSQL LocalSystem 계정으로 로그온

psexec -i -s "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"

이 방법은, NT AUTHORITY\SYSTEM 계정이 SQL 계정 목록에 포함되어 있고, 적절한 권한이 할당 되어 있는 경우에, 사용자 계정 정보 없이 LocalSystem 계정으로 Management Studio 를 이용하여 SQL 에 접근하는 방법. (주로 관리자 계정 정보를 알수 없는 경우에 활용)

psexec 가 간단하지만, 그외 LocalSystem 계정으로 실행되는 여러가지 프로세스 또는 서비스를 활용해도 가능함.

 

 

 


가장 많이 본 글