[위 에]Chapter 2 사용자 인증,인증 및 보안(2):로그 인 계 정 만 들 기
,테마 목록: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 를 열 고 해당 하 는 인 스 턴 스 에 연결 한 다음 서버 레벨 의[보안]에서 오른쪽 단 추 를 눌 러[로그 인 이름]을 선택 하고[새 로그 인]을 선택 합 니 다.
2.로그 인 이름 을 입력 하면 SQL Server 계 정 일 수도 있 고 Windows 계 정 일 수도 있 습 니 다(<기기 이름 or 도 메 인 이름>\\<계 정 이름>).Windows 계 정 일 경우[찾기]에서 찾 아 볼 수 있 습 니 다.
원문의 출처:http://blog.csdn.net/dba_huangzj/article/details/38705965
3.[SQL Server 인증]을 선택 하면 비밀 번 호 를 입력 하고 비밀 번 호 를 확인 할 수 있 습 니 다.어떤 경우 에는 빈 비밀 번 호 를 사용 할 수 있 습 니 다(물론 권장 하지 않 습 니 다).다음은 설명 할 옵션 입 니 다.
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
정책 에 서 는 암호 복잡 도,길이,암호 역사,최소 및 최대 수명 주기 와 잠 금 파 라미 터 를 정의 합 니 다.기본 복잡 도 는:
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
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 를 클릭 합 니 다.항목 이름 을 입력 하고【확인】을 클릭 합 니 다:
2.찾기[전송 로그 인 이름 퀘 스 트]:
원문의 출처:http://blog.csdn.net/dba_huangzj/article/details/38705965
3.아이콘 을 더 블 클릭 하여[로그 인 이름 전송 작업 편집기]열기:
4.[로그 인 이름]페이지 에서 원본 링크 와 대상 링크 를 선택 합 니 다.
5.[loginsToTransfer]에서 복사 할 로그 인 이름 을 선택 하 십시오:
6.[IfObjectExists]옵션 에서 대상 서버 에 존재 하 는 로그 인 이름 에 응답 하 는 방법 을 정의 합 니 다.
7.[CopySids]옵션 에서 복사 로그 인 을 선택 하고 같은 SID 를 유지 할 수 있 습 니 다.이 단 계 는 선택 하 는 것 을 권장 합 니 다.
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.