[위 에]Chapter 2 사용자 인증,인증 및 보안(2):로그 인 계 정 만 들 기

원문의 출처:http://blog.csdn.net/dba_huangzj/article/details/38705965
,테마 목록:http://blog.csdn.net/dba_huangzj/article/details/37906349
작가 의 동의 없 이 그 누구 도'오리지널'형식 으로 발표 할 수 없고 상업 용도 로 사용 할 수 없 으 며 본인 은 어떠한 법률 적 책임 도 지지 않 습 니 다.
        전편:http://blog.csdn.net/dba_huangzj/article/details/38657111
 
선언:
 
 
로그 인 계 정 은 서버(인 스 턴 스)등급 에 정의 되 고 관리 작업,연결,데이터 베이스 방문 등 권한 을 부여 할 수 있 는 계 정 입 니 다.SQL Server 보안 모델 은 두 단계 가 있 습 니 다.서버 등급 과 데이터베이스 등급 입 니 다.로그 인 계 정 은 서버 단계 에서 만들어 야 합 니 다.데이터 베 이 스 를 방문 하려 면 데이터베이스 단계 에서 기 존 로그 인 이름 에 사용자 매 핑 을 만들어 야 합 니 다.
SQL Server 2012 에서 도 입 된 부분 에 포 함 된 데이터베이스(Partially Contained Databases)에 대해 서 는 서버 단계 에서 로그 인 이름 없 이도 데이터 베 이 스 를 방문 할 수 있 도록 해 주 며,다음 장 에서 소개 할 예정 이다.
 
실현:
 
1.SSMS 를 열 고 해당 하 는 인 스 턴 스 에 연결 한 다음 서버 레벨 의[보안]에서 오른쪽 단 추 를 눌 러[로그 인 이름]을 선택 하고[새 로그 인]을 선택 합 니 다.
 
[置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第1张图片
 
2.로그 인 이름 을 입력 하면 SQL Server 계 정 일 수도 있 고 Windows 계 정 일 수도 있 습 니 다(<기기 이름 or 도 메 인 이름>\\<계 정 이름>).Windows 계 정 일 경우[찾기]에서 찾 아 볼 수 있 습 니 다.
[置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第2张图片
 원문의 출처:http://blog.csdn.net/dba_huangzj/article/details/38705965
3.[SQL Server 인증]을 선택 하면 비밀 번 호 를 입력 하고 비밀 번 호 를 확인 할 수 있 습 니 다.어떤 경우 에는 빈 비밀 번 호 를 사용 할 수 있 습 니 다(물론 권장 하지 않 습 니 다).다음은 설명 할 옵션 입 니 다.
  • 암호 정책 강제 실행(Enforce password policy):Windows 의 암호 정책 을 강제로 사용 합 니 다.이 옵션 을 선택 하지 않 으 면 빈 암 호 를 사용 할 수 있 고 다음 두 옵션 도 종 료 됩 니 다.
  • 암호 만 료 강제(Enforce password expiration):Windows 의 암호 정책 에 따라 암호 가 만 료 됩 니 다.
  • 사용 자 는 다음 로그 인 시 비밀 번 호 를 변경 해 야 합 니 다(User must change password at next login):사용 자 는 GUI 로그 인 을 처음 사용 할 때 비밀 번 호 를 수정 해 야 합 니 다.

  • 4.인터페이스의 맨 아래 에서 기본 데이터 베 이 스 를 선택 할 수 있 습 니 다.선택 하지 않 으 면 master 라 이브 러 리 입 니 다.가장 좋 은 실천 으로 master 라 이브 러 리 에 연결 하지 않 는 것 을 권장 합 니 다.DBA 와 개발 자 는 데이터 베 이 스 를 전환 하 는 것 을 잊 어 버 려 서 일부 DDL/DML 문 구 를 master 라 이브 러 리 에서 실행 할 수 있 습 니 다.본인 은 사용자 가 필요 로 하 는 데이터베이스 나 TempDB 를 선택 하 는 습관 이 있 습 니 다.
    5.기본 언어 를 설정 할 수 있 지만 다 중 언어 환경 에서 오류 와 날짜 형식 문 제 를 일 으 킬 수 있 습 니 다.
    6.SSMS 로 만 드 는 것 외 에 T-SQL 로 로그 인 을 만 들 수 있 습 니 다.다음은 다음 과 같 습 니 다.
    --          Windows    ,   Domain,    Fred 
    CREATE LOGIN [DOMAIN\Fred] FROM WINDOWS; 
    --     SQL     ,    Fred 
    CREATE LOGIN Fred WITH PASSWORD = '   ' MUST_CHANGE, 
    CHECK_EXPIRATION = ON, CHECK_POLICY = ON, DEFAULT_DATABASE =AdventureWorks2012, DEFAULT_LANGUAGE = us_English;

     
    원리:
     
    윈도 서버 2008 에서 의 암호 정책 은 다음 과 같은 내용 을 참고 할 수 있 습 니 다.http://technet.microsoft.com/en-us/library/cc264456.aspx
    정책 에 서 는 암호 복잡 도,길이,암호 역사,최소 및 최대 수명 주기 와 잠 금 파 라미 터 를 정의 합 니 다.기본 복잡 도 는:
  • 로그 인 이름 에 2 개 이상 의 연속 문 자 를 포함 할 수 없습니다.
  • 암호 길이 가 최소 6 글자 입 니 다.
  • 비밀 번 호 는 다음 4 가지 문자 중 최소 3 가지 서로 다른 유형의 문 자 를 포함해 야 합 니 다:대문자,소문 자,숫자,특수 기호.

  • Windows 사용자 그룹 을 로그 인 이름 으로 사용 했다 면 현재 로그 인 이 한 그룹의 구성원 에 속 하 는 지 아래 문 구 를 사용 하여 확인 할 수 있 습 니 다.
    SELECT IS_MEMBER('도 메 인 이름\그룹 이름');1.현재 사용자 가 도 메 인 에 속 하 는 그룹의 구성원 입 니 다.
    그러나 이 함 수 는 로그 인 이름 이 SQL Server 에 연 결 된 후 그룹 구성원 이 수 정 된 상황 을 반영 하지 않 습 니 다.
     
     
    더 많은:
     원문의 출처:http://blog.csdn.net/dba_huangzj/article/details/38705965
    SQL 로그 인 시 CHECK 사용POLICY 옵션 을 선택 하면 일부 요소 로 인해 계 정 이 잠 길 수 있 습 니 다.다음 명령 으로 잠 금 해제 가능:
    --         
    ALTER LOGIN fred WITH PASSWORD = '   ' UNLOCK;
    --        : 
    ALTER LOGIN fred WITH CHECK_POLICY = OFF; 
    --      
    ALTER LOGIN fred WITH CHECK_POLICY = ON;--     

     
    로그 인 계 정의 상태 확인:
     
    로그 인 상 태 를 LOGINPROPERTY 함수 로 확인 할 수 있 습 니 다.자세 한 정 보 는 다음 과 같 습 니 다.http://msdn.microsoft.com/zh-cn/library/ms345412.aspx
    다음은 몇 가지 예 이다.
    DECLARE @login AS SYSNAME = 'Fred'; 
    SELECT  LOGINPROPERTY(@login, 'BadPasswordCount') AS [Bad Password Count] , 
            LOGINPROPERTY(@login, 'BadPasswordTime') AS [Last Bad Password Time] , 
            LOGINPROPERTY(@login, 'DaysUntilExpiration') AS [Nb of days before expiration] , 
            LOGINPROPERTY(@login, 'HistoryLength') AS [Nb of passwords in history] , 
            LOGINPROPERTY(@login, 'IsExpired') AS [is expired] , 
            LOGINPROPERTY(@login, 'IsLocked') AS [is locked] , 
            LOGINPROPERTY(@login, 'PasswordLastSetTime ') AS [Password Last Set Time];

     
     
    SQL 로그 인 이름 비밀번호 수정:
     
    ALTER LOGIN 로그 인 이름 WITH PASSWORD='새 비밀번호'를 사용 할 수 있 습 니 다.SQL 로그 인 비밀 번 호 를 수정 합 니 다.이 비밀 번 호 를 실행 하려 면 CONTROL SERVER 나 ALTER ANY LOGIN 권한 이 있어 야 합 니 다.자신의 비밀 번 호 를 수정 하려 면 다음 과 같은 오래된 비밀 번 호 를 제공 해 야 합 니 다.
    ALTER LOGIN fred WITH 
    PASSWORD = 'my new complex password' 
    OLD_PASSWORD = 'my old complex password';

     
    비밀 번 호 는 되 돌 릴 수 없 는 hash 저장 소 를 사용 합 니 다.비밀번호 가 정확 한 지 확인 하려 면 미 공개 함수 PWDCOMPARE 를 사용 하 십시오.
    USE master 
    GO 
    CREATE LOGIN Fred WITH PASSWORD ='Admin!@#123' --        
    go 
    --         
    SELECT PWDCOMPARE('Admin!@#123', CAST(LOGINPROPERTY('fred', 'passwordhash') as varbinary(256)));--  1        
    SELECT PWDCOMPARE('123', CAST(LOGINPROPERTY('fred', 'passwordhash') as varbinary(256)));--  0         

    원문의 출처:http://blog.csdn.net/dba_huangzj/article/details/38705965
    [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第3张图片
     
    SQL 로그 인 이름 을 인 스 턴 스 간 에 복사 합 니 다:
     
    서버 를 옮 겨 야 한다 면 새 서버 에 같은 계 정 비밀 번 호 를 간단하게 만 들 지 못 하면 됩 니 다.어떤 응용 프로그램 은 SID 를 사용 하여 검증 해 야 합 니 다.모든 계 정의 SID 는 다 릅 니 다.SQL Server 2005 부터 스 크 립 트 를 제공 하여 이전 을 실현 합 니 다.http://support.microsoft.com/kb/918992
     
    스 크 립 트 를 제외 하고 SSIS 의[로그 인 이름 전송 퀘 스 트]로 도 수행 할 수 있 습 니 다.절 차 는 다음 과 같 습 니 다.
    1.SQL Server Data Tools(2012 년 부터 이름 을 바 꾸 기 시 작 했 습 니 다.이전 에는 BIDS 였 지만 2012 년 이후 에는 기능 이 더욱 강 해 졌 습 니 다)를 열 고 새로운 프로젝트 를 만 들 고 Business Intelligence 그룹 을 선택 한 다음 Integration Services Project 를 클릭 합 니 다.항목 이름 을 입력 하고【확인】을 클릭 합 니 다:
    [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第4张图片
     
    2.찾기[전송 로그 인 이름 퀘 스 트]:
    [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第5张图片
     원문의 출처:http://blog.csdn.net/dba_huangzj/article/details/38705965
    3.아이콘 을 더 블 클릭 하여[로그 인 이름 전송 작업 편집기]열기:
    [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第6张图片
     
     
    4.[로그 인 이름]페이지 에서 원본 링크 와 대상 링크 를 선택 합 니 다.
    [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第7张图片
     
    5.[loginsToTransfer]에서 복사 할 로그 인 이름 을 선택 하 십시오:
  • AllLogins:전송 소스 서버 의 모든 SQL Server 로그 인 이름 입 니 다.
  • selected Logins:[LoginsList]옵션 에 존재 하 는 로그 인 이름 만 전송 합 니 다.
  • AllLoginsFromSelected Databases:데이터베이스 에 있 는 사용자 의 로그 인 이름 을 정의 하 는 모든 맵 을 전송 합 니 다.

  • [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第8张图片
     
    6.[IfObjectExists]옵션 에서 대상 서버 에 존재 하 는 로그 인 이름 에 응답 하 는 방법 을 정의 합 니 다.
  • FailTask:작업 을 중단 하고 오 류 를 발휘 합 니 다
  • Overwrite:대상 서버 의 로그 인 이름 을 덮어 씁 니 다.SID 가 복사 되 지 않 으 면 사용자 가 고립 된 계 정 으로 변 할 수 있 습 니 다.
  • 건 너 뛰 기:건 너 뛰 기,다른 로그 인 이름 계속.

  • [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第9张图片
    7.[CopySids]옵션 에서 복사 로그 인 을 선택 하고 같은 SID 를 유지 할 수 있 습 니 다.이 단 계 는 선택 하 는 것 을 권장 합 니 다.
     
    [置顶] Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号_第10张图片
     
    SSIS 퀘 스 트 를 어떻게 사용 하 는 지 참조 할 수 있 습 니 다.http://msdn.microsoft.com/zh-cn/library/ms188664.aspx(데이터베이스 복사 마법사 사용)
     
    비밀번호 수 동 복사:
     
    비밀 번 호 를 수 동 으로 복사 하려 면 CREATE LOGIN 명령 으로 실행 할 수 있 습 니 다.
    --      hash ,        
    SELECT LOGINPROPERTY('fred', 'passwordhash'); 
    --                 ,      hash  
    CREATE LOGIN fred WITH PASSWORD '       hash ' HASHED;

    다음 편:http://blog.csdn.net/dba_huangzj/article/details/38756693

    좋은 웹페이지 즐겨찾기