이 항목은 단계별 가이드입니다. 간단한 샘플 HR 데이터베이스를 만들고 일부 사용자 및 해당 그룹 멤버 자격을 가져오는 데 사용합니다.
비고
이제 Microsoft Entra ID 는 MIM 동기화 배포 없이도 사용자를 SQL 데이터베이스에 프로비전하기 위한 간단한 에이전트 기반 솔루션을 제공합니다. 아웃바운드 사용자 프로비저닝에 사용하는 것이 좋습니다. 자세히알아보세요.
샘플 데이터베이스 준비
SQL Server를 실행하는 서버에서 부록 A있는 SQL 스크립트를 실행합니다. 이 스크립트는 GSQLDEMO라는 이름의 샘플 데이터베이스를 만듭니다. 만든 데이터베이스의 개체 모델은 다음 그림과 같습니다.
또한 데이터베이스에 연결하는 데 사용할 사용자를 만듭니다. 이 walkthrough에서는 사용자를 FABRIKAM\SQLUser라고 하며, 이 사용자는 도메인 내에 있습니다.
ODBC 연결 파일 만들기
일반 SQL 커넥터는 ODBC를 사용하여 원격 서버에 연결합니다. 먼저 ODBC 연결 정보를 사용하여 파일을 만들어야 합니다.
- 서버에서 ODBC 관리 유틸리티를 시작합니다.
- 탭 파일 DSN을 선택합니다.
추가...를 클릭합니다..
- 기본 제공 드라이버가 정상적으로 작동하므로 해당 드라이버를 선택하고 다음>클릭합니다.
-
GenericSQL같은 이름을 파일에 지정합니다.
-
Finish를 클릭합니다.
- 연결을 구성하는 시간입니다. 데이터 원본에 적절한 설명을 제공하고 SQL Server를 실행하는 서버의 이름을 제공합니다.
- SQL을 사용하여 인증하는 방법을 선택합니다. 이 경우 Windows 인증을 사용합니다.
- GSQLDEMO 샘플 데이터베이스의 이름을 제공합니다.
- 이 화면에서 모든 항목을 기본값으로 유지합니다.
Finish를 클릭합니다.
- 모든 것이 예상대로 작동하는지 확인하려면 테스트 데이터 원본클릭합니다.
- 테스트에 성공했는지 확인합니다.
- 이제 ODBC 구성 파일이 파일 DSN에 표시됩니다.
이제 필요한 파일이 있으며 커넥터 만들기를 시작할 수 있습니다.
일반 SQL 커넥터 만들기
- Synchronization Service Manager UI에서 커넥터를 선택하고 만들기를 합니다.
일반 SQL(Microsoft) 선택하고 설명이 포함된 이름을 지정합니다.
- 이전 섹션에서 만든 DSN 파일을 찾아 서버에 업로드합니다. 데이터베이스에 연결할 자격 증명을 제공합니다.
- 이 연습에서는 우리를 위해 쉽게 설명하기 위해 두 가지 개체 유형, 사용자 및 그룹이 있다고 가정합니다.
- 특성을 찾기 위해 커넥터가 테이블 자체를 확인하여 해당 특성을 검색하려고 합니다.
사용자 SQL의 예약어이므로 대괄호 [ ]로 제공해야 합니다.
- 앵커 특성 및 DN 특성을 정의하는 시간입니다.
사용자경우 두 특성 사용자 이름과 EmployeeID의 조합을 사용합니다.
그룹경우 GroupName을 사용합니다(실제에서는 현실적이지 않지만 이 연습에서는 작동).
- SQL 데이터베이스에서 모든 특성 유형을 검색할 수 있는 것은 아닙니다. 특히 참조 특성 형식은 사용할 수 없습니다. 그룹 개체 형식의 경우 OwnerID 및 MemberID를 참조하도록 변경해야 합니다.
- 이전 단계에서 참조 특성으로 선택한 특성에는 이러한 값이 참조되는 개체 형식이 필요합니다. 이 경우 User 개체 형식입니다.
- 전역 매개 변수 페이지에서 델타 전략으로 워터마크 선택합니다. 또한 yyyy-MM-dd HH:mm:ss 날짜/시간 형식을 입력합니다.
- 파티션 및 계층 구성 페이지에서 두 개체 유형을 모두 선택합니다.
- 개체 유형 선택 및 특성 선택 화면에서 모든 개체 유형과 모든 특성을 선택합니다. 앵커 구성 페이지에서 마침을 클릭합니다.
실행 프로필 만들기
- Synchronization Service Manager UI에서 커넥터선택하고 실행 프로필구성합니다.
새 프로필클릭합니다. 우리는 전체 가져오기부터 시작합니다.
-
전체 가져오기(스테이지만) 유형을 선택합니다.
선택한 형식과 다음 단추를 보여 주는 - OBJECT=User 파티션을 선택합니다.
- 테이블 을 선택하고 [USERS] 을에 입력합니다. 다중값 개체 형식 섹션까지 아래로 스크롤하고 다음 그림과 같이 데이터를 입력합니다.
마침 선택하여 단계를 저장합니다.
-
새 단계를 선택합니다. 이번에는 object=Group 선택합니다. 마지막 페이지에서 다음 그림과 같이 구성을 사용합니다.
Finish를 클릭합니다.
- 선택 사항: 원하는 경우 추가 실행 프로필을 구성할 수 있습니다. 이 가이드에서는 전체 가져오기만 사용합니다.
- 확인 클릭하여 실행 프로필 변경을 완료합니다.
일부 테스트 데이터 추가 및 가져오기 테스트
샘플 데이터베이스에서 일부 테스트 데이터를 작성합니다. 준비가 되면 실행을 선택하고 전체 가져오기 .
다음은 두 개의 전화 번호가 있는 사용자와 일부 구성원이 있는 그룹입니다.
부록 A
SQL 스크립트를 샘플 데이터베이스 만들기
---Creating the Database---------
Create Database GSQLDEMO
Go
-------Using the Database-----------
Use [GSQLDEMO]
Go
-------------------------------------
USE [GSQLDEMO]
GO
/****** Object: Table [dbo].[GroupMembers] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GroupMembers](
[MemberID] [int] NOT NULL,
[Group_ID] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[GROUPS] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GROUPS](
[GroupID] [int] NOT NULL,
[GROUPNAME] [nvarchar](200) NOT NULL,
[DESCRIPTION] [nvarchar](200) NULL,
[WATERMARK] [datetime] NULL,
[OwnerID] [int] NULL,
PRIMARY KEY CLUSTERED
(
[GroupID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[USERPHONE] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[USERPHONE](
[USER_ID] [int] NULL,
[Phone] [varchar](20) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[USERS] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[USERS](
[USERID] [int] NOT NULL,
[USERNAME] [nvarchar](200) NOT NULL,
[FirstName] [nvarchar](100) NULL,
[LastName] [nvarchar](100) NULL,
[DisplayName] [nvarchar](100) NULL,
[ACCOUNTDISABLED] [bit] NULL,
[EMPLOYEEID] [int] NOT NULL,
[WATERMARK] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
[USERID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[GroupMembers] WITH CHECK ADD CONSTRAINT [FK_GroupMembers_GROUPS] FOREIGN KEY([Group_ID])
REFERENCES [dbo].[GROUPS] ([GroupID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_GROUPS]
GO
ALTER TABLE [dbo].[GroupMembers] WITH CHECK ADD CONSTRAINT [FK_GroupMembers_USERS] FOREIGN KEY([MemberID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_USERS]
GO
ALTER TABLE [dbo].[GROUPS] WITH CHECK ADD CONSTRAINT [FK_GROUPS_USERS] FOREIGN KEY([OwnerID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GROUPS] CHECK CONSTRAINT [FK_GROUPS_USERS]
GO
ALTER TABLE [dbo].[USERPHONE] WITH CHECK ADD CONSTRAINT [FK_USERPHONE_USER] FOREIGN KEY([USER_ID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[USERPHONE] CHECK CONSTRAINT [FK_USERPHONE_USER]
GO