CREATE DATABASE [DB명]

  ON (FILENAME = '[경로명]')

FOR ATTACH_FORCE_REBUILD_LOG

 

ATTACH_FORCE_REBUILD_LOG

= 로그파일을 강제로 재생성 하는 구문같은데..

 

트랜잭션 관련 등 기존 로그파일에 가지고 있는 정보를 100% 다 생성해내지 못하기 때문에,

정~ 방법이 없을 경우에 이렇게라도 DB를 복구하도록 하자.

 

 

 

 

[EX]

CREATE DATABASE acc
ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\acc.mdf')

FOR ATTACH_FORCE_REBUILD_LOG

Posted by 야동우
,

 

*** DATABASE(Create)

DATABASE 생성 형식 CREATE DATABASE DB명 --데이타베이스명 ON --데이타파일저장공간설정 ( NAME = 논리명, --논리적파일명 FILENAME = '경로', --물리적파일명(실제파일) SIZE = 크기, --크기 MB단위 MAXSIZE = 최대크기, --최대 몇MB까지 확장할것인지.. FILEGROWTH = 확장크기 ) --확장시 %단위로 확장 LOG ON --로그파일저장공간설정 ( NAME = 논리명, --논리적파일명 FILENAME = '경로', --물리적파일명 SIZE = 크기MB, --크기 MAXSIZE = 최대크기MB, --최대크기 FILEGROWTH = 확장크기MB ) --확장시 5MB단위로 확장 --DATABASE 생성 CREATE DATABASE UserSmp ON ( NAME = UserSmp_dat, --FILENAME = 'c:\mssql7\data\UserSmp.mdf', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\UserSmp.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = 'UserSmp_log', -- FILENAME = 'c:\mssql7\data\UserSmp.ldf', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\UserSmp.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) DATABASE(Drop) --DATABASE 제거형식 DROP DATABASE 데이타베이스명 DROP DATABASE UserSmp ※ DROP DATABASE 명령을 실행하게되면 물리적 파일(MDF, LDF)파일도 같이 삭제된다. --DATABASE 수정 ALTER DATABASE 데이타베이스명 MODIFY FILE --ADD FILE, REMOVE FILE ( NAME=수정할 데이타베이스의 논리파일명, SIZE=수정할 크기 ) ALTER DATABASE UserSmp MODIFY FILE ( NAME=UserSmp_Dat, SIZE=15 ) --DATABASE OPTION SP_DBOPTION [database_name, option_name, {TRUE | FALSE}] - DBO use only 데이터베이스의 소유자만 사용할 수 있도록 한다. - Single user 데이터베이스를 한명만 사용 할 수 있도록 한다. - Read only 사용자가 데이터를 검색만 가능하도록 한다. - ANSI NULL default NOT NULL이 정의되지 않는 한 열은 Null을 사용할 수 있다. SP_DBOPTION usersmp, 'read only', True

 

 

 

 

 

출처] http://cafe995.daum.net/_c21_/bbs_search_read?grpid=euw8&fldid=O0H6&contentval=00002zzzzzzzzzzzzzzzzzzzzzzzzz&nenc=&fenc=&q=&nil_profile=cafetop&nil_menu=sch_updw


Posted by 야동우
,

 

1. DB 백업파일를 확인한다.

 

restore filelistonly from disk='[.BAK파일의 경로]'

 

데이터파일(.mdf)과 로그파일(.ldf)의 내용을 확인한다.

 

 

 

 

2. DB를 복구한다.

restore database 생성될DB명 from disk='[.BAK파일의 경로]'

with move '[1에서 확인한 데이터파일 LogicalName]'  to '[저장될 .MDF경로]',

       move '[1에서 확인한 로그파일 LogicalName]'  to '[저장될 .LDF경로]'

 

한 방에 성공하시길...

 

 

 

 

 

 

EX]

 

restore filelistonly from disk='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\acc_db_201205062200.BAK'

 

restore database ACC from disk='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\acc_db_201205062200.BAK'
with move 'acc_Data' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\acc_data.mdf',
       move 'acc_Log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\acc_log.ldf'

Posted by 야동우
,

 

오라클 데이터베이스를 덤프받아 테스트할 경우, 암호화/복호화가 쓰인 경우가 있다.

 

이때는 유저에게 암호화/복호화 함수를 실행할 수 있는 권한을 부여해줘야 한다.

 

 

 

C:\> sqlplus /nolog

 

SQL> conn /as sysdba               << dbms_crypto 를 부여할 수 있는 권한이 있는 유저로 로그인해도 무방하다.

 

 

SQL> grant execute on dbms_crypto to 유저이름;

 

 

 

Posted by 야동우
,

 

 

상황

sql/plus에서 @file.sql 로 스크립트를 돌리는데 & 문자가 데이터에 들어있을 경우,

& 문자를 그대로 입력하고 싶은데, 자꾸 치환변수로 인식해서 값을 입력하라고 한다.

 

 

해결방법

오라클상에서 치환변수로 인식하겠다는 옵션을 변경해주면 된다.

 

 

 

방법1.

오라클 sql/plus에서 치환변수 해제

SQL> set define off;

(다시 이 옵션이 필요할 수도 있으니, 스크립트를 돌리고 나면 set define on 으로 바꿔주자 ~_~

 

방법 2.

토드 9.x에서

View->Toad Options

->Editor->Execute/Compile->Behavior 영역에서

Prompt for substitution variables 체크 해제

 

 

 

 

 

[여담..] 이거 몰라서.. 스무개정도 수동으로 입력했다..... 데이터가 천개였기 망정이지, 몇만개만 됐어도 ㅎㄷㄷ.........

Posted by 야동우
,

 

SQL> ALTER TABLE 구DB명 RENAME TO 신DB명;

 

 

참 쉽죠잉~

 

근데 오라클에만 있는듯..

Posted by 야동우
,

[출처]
MSSQL 계정 생성|작성자 관불


SA로 로그인을 한다.

우선 로그인을 먼저 생성한다.

CREATE LOGIN 로그인명 WITH PASSWORD='...', DEFAULT_DATABASE=데이터베이스명;

이후에 유저를 생성한다. 씨퀄은 데이터베이스마다 존재한다. 따라서 유저 생성을 위해선 생성할 유저가 속할 데이터베이스로 이동을 해야 한다.

USE 데이터베이스명;

GO;

CREATE USER 유저명 FOR LOGIN 로그인명 WITH DEFAULT_SCHEMA=dbo;

를 입력한다.

테이블 생성 권한을 주어보자

GRANT CREATE TABLE TO 유저명

이제 스키마에 권한을 부여한다.

GRANT CONTROL ON SCHEMA::dbo TO 유저명

참고로 씨퀄은 객체 앞에 소유한 유저의 이름을 붙이는 것이 아니고 객체가 속한 스키마 이름을 붙여야 한다.


[출처]
MSSQL 계정 생성|작성자 관불

Posted by 야동우
,

출처 : http://cambo95.blog.me/100106815327


기존에 사용하던 DB를 백업 또는 분리하여 다른 곳에 복원시키려고 할 경우,

DB를 복원 또는 연결하고나면 기 DB에는 로그인 정보가 있는데
복원한 곳의 SQL Server는 로그인 계정이 아직 존재하지 않기에 로그인에 문제가 생긴다.

이럴 때, 아래 구문을 실행한다. (해당 데이터베이스를 선택한 후 적용해야 한다.)    <<   이거때매 삽질 ㅠ

SQL Server의 로그인 계정은 생성이 필요없고, 기존 DB의 로그인 계정을 적으면 된다.
SP_CHANGE_USERS_LOGIN 'UPDATE_ONE', '유저이름', '로그인계정'


-- 상세정보는 http://msdn.microsoft.com/ko-kr/library/ms174378.aspx 참조


-- 먼저 SQL Server 사용자 계정 추가.

첫번째 방법.
sp_addlogin '로그인계정', '비밀번호', '기본DB'
Go

두번째 방법.
create login 로그인명
with password='패스워드',                  << 작은따옴표랑, 콤마 주의
default_database=기본DB;
Go




-- 매칭

use DB명
Go
sp_change_users_login 'update_one', '유저이름', '로그인계정'     

<< 여기서 유저는 해당DB에 대하여 커넥트권한이 있어야 하나?,, 정확하게 모르겠다 ;;



출처 : http://cambo95.blog.me/100106815327
Posted by 야동우
,

[출처] ALTER LOGIN_로그인계정 활성/비활성화|작성자 enjoy0



SQL Server 로그인 계정의 속성을 변경합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

ALTER LOGIN login_name 
    { 
    <status_option> 
    | WITH <set_option> [ ,... ]
    | <cryptographic_credential_option>
    } 

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=            
    PASSWORD = 'password' | hashed_password HASHED
    [ 
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [<password_option> ] 
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL
  
<password_option> ::= 
    MUST_CHANGE | UNLOCK
<cryptographic_credentials_option> ::= 
         ADD CREDENTIAL credential_name
          | DROP CREDENTIAL credential_name

login_name

변경할 SQL Server 로그인의 이름을 지정합니다. 도메인 이름은 [domain\user] 형식과 같이 대괄호로 묶어야 합니다.

ENABLE | DISABLE

로그인을 활성화하거나 비활성화합니다.

PASSWORD ='password'

SQL Server 로그인에만 적용됩니다. 변경할 로그인의 암호를 지정합니다. 암호는 대소문자를 구분합니다.

PASSWORD =hashed_password

HASHED 키워드에만 적용됩니다. 만들 로그인에 대한 암호의 해시된 값을 지정합니다.

HASHED

SQL Server 로그인에만 적용됩니다. PASSWORD 인수 다음에 입력한 암호가 이미 해시되었음을 지정합니다. 이 옵션을 선택하지 않으면 암호가 데이터베이스에 저장되기 전에 해시됩니다. 이 옵션은 두 서버 간에 로그인을 동기화하는 데에만 사용해야 합니다. HASHED 옵션을 사용하여 정기적으로 암호를 변경하면 안 됩니다.

참고 참고

이 인수는 SQL Server 2000 이후 버전에서 생성된 해시에서만 작동합니다.

OLD_PASSWORD ='oldpassword'

SQL Server 로그인에만 적용됩니다. 새 암호가 할당될 로그인의 현재 암호입니다. 암호는 대소문자를 구분합니다.

MUST_CHANGE

SQL Server 로그인에만 적용됩니다. 이 옵션을 지정한 경우 변경한 로그인을 처음 사용할 때 SQL Server에서는 업데이트된 암호를 묻는 메시지를 표시합니다.

DEFAULT_DATABASE =database

로그인에 할당할 기본 데이터베이스를 지정합니다.

DEFAULT_LANGUAGE =language

로그인에 할당할 기본 언어를 지정합니다.

NAME = login_name

이름을 바꿀 로그인의 새 이름입니다. Windows 로그인인 경우 새 이름에 해당하는 Windows 보안 주체의 SID가 SQL Server의 로그인에 연결된 SID와 일치해야 합니다. SQL Server 로그인의 새 이름에는 백슬래시(\)를 사용할 수 없습니다.

CHECK_EXPIRATION = { ON | OFF }

SQL Server 로그인에만 적용됩니다. 이 로그인에 암호 만료 정책을 적용할지 여부를 지정합니다. 기본값은 OFF입니다.

CHECK_POLICY = { ON | OFF }

SQL Server 로그인에만 적용됩니다. SQL Server가 실행 중인 컴퓨터의 Windows 암호 정책을 이 로그인에 적용하도록 지정합니다. 기본값은 ON입니다.

CREDENTIAL = credential_name

SQL Server 로그인에 매핑될 자격 증명의 이름입니다. 자격 증명이 서버에 이미 있어야 합니다. 자세한 내용은 자격 증명(데이터베이스 엔진)를 참조하십시오.

NO CREDENTIAL

서버 자격 증명에 대한 로그인의 기존 매핑을 모두 제거합니다. 자세한 내용은 자격 증명(데이터베이스 엔진)을 참조하십시오.

UNLOCK

SQL Server 로그인에만 적용됩니다. 잠긴 로그인을 잠금 해제하도록 지정합니다.

ADD CREDENTIAL

EKM(확장 가능 키 관리) 공급자 자격 증명을 로그인에 추가합니다. 자세한 내용은 EKM(확장 가능 키 관리) 이해를 참조하십시오.

DROP CREDENTIAL

EKM(확장 가능 키 관리) 공급자 자격 증명을 로그인에서 제거합니다. 자세한 내용은 EKM(확장 가능 키 관리) 이해를 참조하십시오.

CHECK_POLICY를 ON으로 설정하면 HASHED 인수를 사용할 수 없습니다.

CHECK_POLICY가 ON으로 변경되면 다음 동작이 수행됩니다.

  • CHECK_EXPIRATION이 명시적으로 OFF로 설정되어 있지 않은 경우 ON으로 설정됩니다.

  • 암호 기록이 현재 암호 해시 값으로 초기화됩니다.

CHECK_POLICY가 OFF로 변경되면 다음 동작이 수행됩니다.

  • CHECK_EXPIRATION도 OFF로 설정됩니다.

  • 암호 기록이 삭제됩니다.

  • lockout_time 값이 다시 설정됩니다.

MUST_CHANGE를 지정한 경우에는 CHECK_EXPIRATION 및 CHECK_POLICY를 ON으로 설정해야 합니다. 그렇지 않으면 문이 실패합니다.

CHECK_POLICY를 OFF로 설정한 경우에는 CHECK_EXPIRATION을 ON으로 설정할 수 없습니다. 이 옵션 조합을 사용하면 ALTER LOGIN 문이 실패합니다.

중요 정보 중요

CHECK_EXPIRATION 및 CHECK_POLICY는 Windows Server 2003 이상 버전에서만 적용됩니다. 자세한 내용은 암호 정책을 참조하십시오.

중요 정보 중요

Windows Server 2003에서 알려진 문제로 인해 계정 잠금 임계값에 도달한 후 잘못된 암호 수를 다시 설정하지 못할 수도 있습니다. 이 경우 후속 로그인 시도가 실패하면 즉시 잠금이 발생할 수 있습니다. 간단하게 CHECK_POLICY = ON 앞에 CHECK_POLICY = OFF를 설정하면 잘못된 암호 수를 수동으로 다시 설정할 수 있습니다. 계정 잠금 임계값에 대한 자세한 내용은 Microsoft 기술 자료 문서 818078: 사용자 계정이 잘못 잠길 수 있다를 참조하십시오.

ALTER_LOGIN에 DISABLE 인수를 사용하여 Windows 그룹에 대한 액세스를 거부할 수 없습니다. 예를 들어 ALTER_LOGIN [domain\group] DISABLE은 다음 오류 메시지를 반환합니다.

메시지 15151, 수준 16, 상태 1, 줄 1

로그인 'Domain\Group'이(가) 없거나 권한이 없으므로 변경할 수 없습니다.

이것은 의도적인 것입니다.

ALTER ANY LOGIN 권한이 필요합니다.

CREDENTIAL 옵션을 사용하는 경우에는 ALTER ANY CREDENTIAL 권한도 필요합니다.

변경되는 로그인이 sysadmin 고정 서버 역할의 멤버이거나 CONTROL SERVER 권한의 피부여자인 경우에는 다음과 같은 변경을 수행할 때 CONTROL SERVER 권한도 필요합니다.

  • 이전 암호를 제공하지 않고 암호를 다시 설정

  • MUST_CHANGE, CHECK_POLICY 또는 CHECK_EXPIRATION 활성화

  • 로그인 이름 변경

  • 로그인 활성화 또는 비활성화

  • 로그인을 다른 자격 증명에 매핑

보안 주체는 자신이 소유하는 로그인의 암호, 기본 언어 및 기본 데이터베이스를 변경할 수 있습니다.

1. 비활성화된 로그인 활성화

다음 예에서는 Mary5 로그인을 활성화합니다.

ALTER LOGIN Mary5 ENABLE;

2. 로그인 암호 변경

다음 예에서는 Mary5 로그인의 암호를 강력한 암호로 변경합니다.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

3. 로그인 이름 변경

다음 예에서는 Mary5 로그인의 이름을 John2로 변경합니다.

ALTER LOGIN Mary5 WITH NAME = John2;

4. 로그인을 자격 증명에 매핑

다음 예에서는 John2 로그인을 Custodian04 자격 증명에 매핑합니다.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

5. 로그인을 확장 가능 키 관리 자격 증명에 매핑

다음 예에서는 Mary5 로그인을 EKMProvider1 EKM 자격 증명에 매핑합니다.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

6. 로그인 잠금 해제

SQL Server 로그인의 잠금을 해제하려면 ****를 원하는 계정 암호로 바꾸고 다음 문을 실행합니다.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

암호를 변경하지 않고 로그인의 잠금을 해제하려면 검사 정책을 해제한 다음 다시 설정합니다.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

7. HASHED를 사용하여 로그인 암호 변경

다음 예에서는 TestUser 로그인의 암호를 이미 해시된 값으로 변경합니다.

ALTER LOGIN TestUser WITH 
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO
Posted by 야동우
,



SQL> GRANT EXECUTE ON DBMS_CRYPTO TO USERNAME;
Posted by 야동우
,