Bagaimana untuk mengisi database SQL Server 2005 dengan menggunakan informasi dari Active Directory

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 319716 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini selangkah demi selangkah menjelaskan cara untuk mengisi database Microsoft SQL Server 2005 dengan menggunakan informasi dari Active Directory.

Persyaratan

Tabel database SQL Server

Untuk pertimbangan keamanan, sebaiknya Anda mengenkripsi data ketika Anda mendapatkan informasi direktori aktif. Untuk mengenkripsi data, sebaiknya Anda menggunakan infrastruktur manajemen kunci dalam SQL Server 2005. SQL Server 2005 menyediakan mekanisme enkripsi berikut:
  • Sertifikat
  • Asimetris kunci
  • Kunci simetris
Untuk informasi lebih lanjut tentang enkripsi hirarki dalam SQL Server 2005, kunjungi Web site Microsoft Developer Network (MSDN) berikut:
http://msdn2.Microsoft.com/en-us/library/ms189586.aspx
Dalam kode contoh berikut menunjukkan cara membuat tabel yang berisi kolom data dienkripsi dengan menggunakan enkripsi simetris. Kode contoh dalam artikel ini menyisipkan informasi pengguna dalam sebuah tabel yang bernama karyawan dalam database yang bernama karyawan.

Catatan Menggunakan Advanced Encryption Standard (AES) enkripsi untuk kunci simetrik tidak didukung pada Microsoft Windows XP atau Windows 2000 Server. Sebelum Anda menjalankan kode contoh pada sistem yang tidak mendukung enkripsi AES, Anda harus mengubah teks AES_256 dalam kode untuk DES.
USE master;
GO
IF DB_ID (N'Employees') IS NOT NULL
DROP DATABASE Employees;
GO
CREATE DATABASE Employees;
GO

USE  Employees;
GO
CREATE MASTER KEY ENCRYPTION BY 
PASSWORD = 'YourPassword'

CREATE CERTIFICATE ActiveDirectoryInfo
   WITH SUBJECT = 'Active Directory information';
GO

CREATE SYMMETRIC KEY SKey_AD

    WITH ALGORITHM = AES_256

    ENCRYPTION BY CERTIFICATE ActiveDirectoryInfo;

GO

CREATE TABLE [Employee] (
	[UserId] [int] IDENTITY (1, 1) NOT NULL ,
	[Username] [varbinary] (128),
	[FullName] [nvarchar] (1000),
	[Description] [nvarchar] (1000),
	CONSTRAINT [PK_Users] PRIMARY KEY  CLUSTERED 
	(
		[UserId]
	)  ON [PRIMARY] 
) ON [PRIMARY]
GO

CREATE PROCEDURE sp_adinfo
@Username nvarchar(128),
@Fullname nvarchar(1000),
@Description nvarchar(1000)
AS
BEGIN
	OPEN SYMMETRIC KEY SKey_AD
	DECRYPTION BY CERTIFICATE ActiveDirectoryInfo;

	INSERT INTO [Employee] ([Username], [FullName], [Description]) 
	VALUES(EncryptByKey(Key_GUID('SKey_AD'), @Username)
	,@Fullname,	@Description)
END
GO

Membuat Microsoft Visual Basic script dengan menggunakan antarmuka layanan direktori aktif

  1. Di editor teks seperti Notepad, ketik script berikut:
    Option Explicit
    
    Dim sDomain
    Dim oDomain
    Dim sFilter
    Dim oADobject 
    Dim MyConnection
    Dim MyCommand
    Dim param1
    Dim param2
    Dim param3
    
    sDomain 	= "some_domain"
    sFilter 	= "User"
    
    'Connect to the domain.
    Set oDomain 	= GetObject("WinNT://" & sDomain)
    oDomain.Filter 	= Array( sFilter )
    
    Set MyConnection = CreateObject("ADODB.Connection")
    'The following is the SQL connection string.
    MyConnection.Open "Driver={SQL Server};server=(local);database=Employees;uid=some_username;pwd=some_password;"
    
    Set MyCommand = CreateObject("ADODB.Command")
    Set MyCommand.ActiveConnection = MyConnection
    
    Set param1 = MyCommand.CreateParameter("@Username", 202, 1, 128)
    Set param2 = MyCommand.CreateParameter("@Fullname", 202, 1, 1000)
    Set param3 = MyCommand.CreateParameter("@Description", 202, 1, 1000)
    
    MyCommand.CommandText = "sp_adinfo"
    MyCommand.CommandType = 4
    
    MyCommand.Parameters.Append param1
    MyCommand.Parameters.Append param2
    MyCommand.Parameters.Append param3
    
    
    For Each oADobject In oDomain
    	param1.Value = oADobject.Name
    	param2.Value = oADobject.FullName
    	param3.Value = oADobject.Description
       	MyCommand.Execute
    Next
    
    MyConnection.Close()
    
    Script ini menghubungkan ke domain yang bernama "beberapa domain" untuk mendapatkan informasi pengguna. Kemudian, script ini menyisipkan informasi pengguna dalam sebuah tabel yang bernama karyawan. Tabel ini terletak di database yang bernama karyawan. Mengubah properti nama domain direktori aktif dan string koneksi SQL yang diatur oleh MyConnection objek.
  2. Simpan sebagai file AdSqlUsers.vbs.
  3. Klik dua kali AdSqlUsers.vbs untuk menjalankan berkas.
  4. Visual Basic script akan mengeksekusi, dan database SQL Server akan diisi dengan informasi Active Directory.

Verifikasi data SQL Server

  1. Buka Microsoft SQL Server Management Studio.
  2. Dalam objek Explorer, Cari Karyawan database yang berisi Karyawan meja, dan kemudian klik Query baru di toolbar.
  3. Di jendela editor, jalankan pernyataan Transact-SQL berikut untuk melihat data dienkripsi:
    SELECT * from Employee
    					
    Query kembali dienkripsi data yang berisi nama pengguna Active Directory.
  4. Untuk melihat data dekripsi, jalankan pernyataan Transact-SQL berikut:
    OPEN SYMMETRIC KEY SKey_AD
       DECRYPTION BY CERTIFICATE ActiveDirectoryInfo;
    GO
    
    SELECT
    CONVERT(nvarchar, DecryptByKey([Username])) 
    AS 'Decrypted Username',
    [FullName], [Description] from [Employee]
    GO
    

REFERENSI

Untuk informasi lebih lanjut tentang enkripsi hirarki dalam SQL Server 2005, lihat topik berikut dalam SQL Server 2005 buku Online:
  • "Enkripsi hirarki"
  • "Memilih algoritma enkripsi"
  • "Pertimbangan keamanan untuk database dan aplikasi database"
  • "Membuat sertifikat (Transact-SQL)"
  • "Membuat kunci SIMETRIK (Transact-SQL)"
Untuk informasi lebih lanjut tentang bagaimana untuk mengenkripsi kolom data dalam SQL Server 2005, kunjungi Website MSDN berikut:
http://msdn2.Microsoft.com/en-us/library/ms179331.aspx
Untuk informasi lebih lanjut, Cari Web site Microsoft berikut "Antarmuka layanan direktori aktif," untuk "Active Directory", dan "Visual Basic Script":
http://Search.Microsoft.com/advancedsearch.aspx

Properti

ID Artikel: 319716 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Kata kunci: 
kbhowtomaster kbmt KB319716 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:319716

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com