0% found this document useful (0 votes)
67 views

Administering Database Server With Microsoft SQL Server 2005

Administering Database Server With Microsoft SQL Server 2005

Uploaded by

Agus Setiawan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

Administering Database Server With Microsoft SQL Server 2005

Administering Database Server With Microsoft SQL Server 2005

Uploaded by

Agus Setiawan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 80

SPECIAL CLASS

PROGRAMMER

ADMINISTERING DATABASE SERVER


WITH MICROSOFT SQL SERVER 2005
(Versi buku : 3.0)

Copyright 2007,
BiNus Center Head Office
Jl. KH. Syahdan No. 20 Kemanggisan - Palmerah
Jakarta 11480
Telp: (+6221) 534 5830, 532 2157, 532 8091
Fax: (+6221) 536 3867, Email: [email protected]

DIPERGUNAKAN HANYA UNTUK KEPENTINGAN


PEMBELAJARAN DI BINUS CENTER

Hak Cipta dilindungi oleh undang-undang.


Dilarang mengutip atau memperbanyak
sebagian atau seluruh isi buku ini tanpa izin tertulis dari
Binus Center Pusat

i
Contents

INTRODUCTION TO DATABASE AND SQL SERVER......................................................... 1


1.1. Introduction to SQL Server Database .................................................................... 1
1.2. SQL Server 2005 Installation ................................................................................... 1
1.2.1. Local Installation ................................................................................................. 2
1.2.2. Remote Installation.............................................................................................5
1.2.3. Unattended Installation .....................................................................................5
1.3. Types of Database ....................................................................................................... 7
1.4. Connected Database System ................................................................................... 7
1.5. Database Components ...............................................................................................8
1.6. Transaction Log............................................................................................................9
1.7. Table ................................................................................................................................9
1.8. Index .......................................................................................................................... 10
1.9. Trigger........................................................................................................................... 10
1.10. Constraint ................................................................................................................ 10
1.11. View..................................................................................................................................11
1.12. Stored Procedure ....................................................................................................11
1.13. Rule ..............................................................................................................................11
1.14. Default.........................................................................................................................11
1.15. User-Defined Data Types .....................................................................................12
1.16. SQL Server Data Types.........................................................................................12
1.17. Collation.....................................................................................................................13
1.18. Maximum Capacity .................................................................................................13
MANAJEMEN DATABASE SQL SERVER........................................................................... 16
2.1. SQL Server Configuration Manager ..................................................................... 16
2.2. Books Online............................................................................................................ 18
2.3. SQL Server Surface Area Configuration......................................................... 19
2.4. Microsoft SQL Server Management Studio .................................................. 20
2.5. Scripting ...................................................................................................................22
2.6. Creating Database.................................................................................................23
2.7. Altering Database................................................................................................. 25
2.8. Dropping Database ............................................................................................... 26

ii
DATA TRANSFER.....................................................................................................................27
3.1. SQL Server Integration Services ..........................................................................27
3.2. SQL Server Business Intelligence Development Studio ............................27
3.3. Transferring Data ..................................................................................................27
3.4. Executing Package ............................................................................................... 29
3.5. SQL Server Import and Export Wizard........................................................... 29
BACKUP AND RESTORE .........................................................................................................31
4.1. Backup and Restore Introduction ..........................................................................31
4.2. Backup Devices .......................................................................................................31
4.2.1. Creating Device from Management Studio.................................................31
4.2.2. Creating Device from T-SQL ..........................................................................32
4.3. Backup Operation ..................................................................................................33
4.3.1. Backup using Management Studio ...............................................................33
4.3.2. Backup using T-SQL ........................................................................................ 34
4.3.3. Backup Scheduling........................................................................................... 35
4.4. Restore Operation .................................................................................................37
4.4.1. Restore using Management Studio ..............................................................37
4.4.2. Restore using T-SQL ....................................................................................... 38
INDEX TABLE ............................................................................................................................ 41
5.1. Index Introduction ..................................................................................................... 41
5.2. Types of Index........................................................................................................ 44
5.3. Creating Index........................................................................................................ 46
5.3.1. Creating Index from Modify Table ............................................................... 46
5.3.2. Creating Index using New Index from Object Indexes........................... 49
5.3.3. Creating Index using T-SQL........................................................................... 50
5.4. Showing Information of Index ............................................................................ 51
5.5. Changing Index Name........................................................................................... 51
5.6. Dropping Index....................................................................................................... 52
SECURITY.................................................................................................................................. 53
6.1. Security Philosophy ................................................................................................. 53
6.2. Login ......................................................................................................................... 55
6.2.1. Membuat Login.................................................................................................. 55
6.2.2. Meng-edit Login ................................................................................................ 60
6.2.3. Menghapus Login.............................................................................................. 60
6.2.4. T-SQL Command............................................................................................... 60

iii
6.3. User........................................................................................................................... 60
6.4. Securable ................................................................................................................. 61
6.4.1. Securable scope: Server.................................................................................. 61
6.4.2. Securable scope: Database ............................................................................ 61
6.4.3. Securable scope: Schema .............................................................................. 62
6.5. Principal................................................................................................................... 62
6.5.1. Windows-level Principals................................................................................ 63
6.5.2. Server-level Principals ................................................................................... 63
6.5.3. Database-level Principals .............................................................................. 64
6.6. Permissions ............................................................................................................ 66
6.6.1. Grant..................................................................................................................... 66
6.6.2. Deny ..................................................................................................................... 67
6.6.3. Revoke................................................................................................................. 68
6.7. Schema .................................................................................................................... 69
6.7.1. Object Full-Name .............................................................................................. 70
6.7.2. Membuat Schema ...............................................................................................71
6.7.3. Mentransfer Object antar Schema ...............................................................72
6.7.4. Menghapus Schema..........................................................................................72
6.7.5. Mentransfer Schema Ownership dan Menghapus User .........................73
6.8. Credential................................................................................................................ 74
6.9. Certificate & Asymmetric Keys........................................................................ 74
6.10. Synonym.................................................................................................................. 74
6.10.1. Membuat Synonym.......................................................................................... 75
6.10.2. Menghapus Synonym..................................................................................... 75

iv
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

BAB 1
INTRODUCTION TO DATABASE AND SQL SERVER

1.1. Introduction to SQL Server Database


SQL Server adalah sebuah sistem manajemen database relasional yang biasa
disebut dengan RDBMS (Relational Database Management System). SQL Server
menangani hubungan antara client dengan server yang berupa pengolahan database
relasional dengan menggunakan Transact-SQL (T-SQL) sebagai bahasa atau statement
dasar untuk mengirimkan permintaan / perintah antara client dan server. Proses
pengolahan database juga dapat menggunakan alat - alat manajemen database yang
telah disediakan oleh SQL Server, misalnya Microsoft SQL Server Management Studio.
Microsoft SQL Server 2005, mempunyai 4 versi yaitu: Express, Workgroup,
Standard, dan Enterprise Edition. Enterprise Edition hanya bisa berjalan di kelas server
seperti: Win 2000 Server SP 4, Win 2003 Standar SP 1, Win 2003 Enterprise SP 1, Win
2003 Datacenter SP 1 dan Windows SBS 2003 SP 1 (kecuali Win 2003 Server Web SP 1).
Yang akan dibahas disini adalah Developer Edition, dimana memiliki fitur yang sama
dengan Enterprise Edition, namun hanya memiliki lisensi untuk penggunaan
development, test, dan demo. Perbandingan fitur masing-masing edisi bisa dilihat di:

http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx

1.2. SQL Server 2005 Installation


Ada 3 jenis instalasi SQL Server 2005:
1. Instalasi pada Local Computer.
2. Instalasi pada Remote Computer.
3. Instalasi tanpa keterlibatan user (unattended installation)

Proses instalasi SQL Server 2005 harus memenuhi beberapa syarat. Syarat-syarat
ini dapat dibaca pada SQL Server Books Online untuk SQL Server 2005.

1
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

1.2.1. Local Installation


Instalasi yang dilakukan pada komputer lokal dan secara langsung diawasi
oleh user. Persyaratan untuk melakukan instalasi ada pada SQL Server Books
Online untuk SQL Server 2005, namun kegagalan yang sering terjadi adalah akibat:
Kombinasi Windows dan Service Pack nya, serta
Belum diinstalnya minimal .NET Framework 2.0.

Selanjutnya tinggal mengikuti langkah-langkah berikut:


1. Masukkan DVD SQL Server 2005 ke DVD ROM atau buka source file
dari network drive. Versi yang digunakan dalam materi ini adalah SQL
Server 2005 Developer Edition.
2. Jalankan Autorun atau langsung double click file splash.hta.

Gambar 1: Layar utama instalasi MS SQL Server 2005.

3. Pilih OS yang dikehendaki. Untuk prosesor 32 bit menggunakan x86,


sedangkan 64 bit menggunakan x64.

2
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 2: Instalasi MS SQL Server 2005.

4. Untuk menginstalasi SQL 2005, pilihlah Server, components, Tools,


Books Online, and samples. SQL Native Client hanya menyediakan
teknologi untuk mengakses data SQL 2005 dan juga API yang
menggabungkan OLEDB dan ODBC.
5. Installer akan melakukan System Configuration Check, jika tidak ada
Error yang ditemukan, klik Next dan proses akan dilanjutkan dengan
pemilihan komponen yang akan di-install dan klik Next.

Gambar 3: Pilihan komponen untuk di-install.

3
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

6. Lanjutkan ke Instance Name, gunakan Default Instance dan klik Next.


Pada Service Account, jika komputer tidak merupakan bagian dari
domain, gunakan Use the built-in System account dan Local System,
klik Next.
7. Jika sebelumnya tidak pernah meng-install SQL Server 2000, akan ada
pilihan Authentication Mode. Pilih Mixed Mode untuk menggunakan
proteksi dari SQL Server dan isi password untuk user sa yang
merupakan user tertinggi di SQL Server, klik Next.

Gambar 4: Metode autentifikasi.

8. Pada Collation Setting, pilih cara bagaimana data akan diurutkan.


Untuk mudahnya, pilih default dari SQL Collations, klik Next .

4
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 5: Collation Setting.

9. Pada Error and Usage Report Settings, bisa dipilih apakah jika terjadi
error akan secara otomatis dikirimkan ke Microsoft melalui internet.
Pilihan tersebut tidak perlu diaktifkan, klik Next.
10. Tunggu proses instalasi hingga selesai, mungkin akan makan waktu
beberapa menit, klik Finish untuk mengakhiri proses instalasi. Selamat,
SQL Server 2005 telah berhasil di-install.

1.2.2. Remote Installation


Remote Installation sudah tidak didukung lagi pada versi 2005. Untuk
melakukan remote installation pada MS SQL Server 2005, bisa dilakukan dengan
cara melakukan remote connection pada komputer tersebut dan menjalankan
setup maupun melakukan instalasi melalui command prompt.

1.2.3. Unattended Installation


Unattended Installation dilakukan untuk melakukan instalasi melalui
command prompt, dimana instalasi tersebut tidak perlu ditunggu oleh user.
Instalasi maupun uninstall dilakukan dengan menyertakan setting yang akan
digunakan dalam instalasi tersebut dalam sebuah satu script panjang yang
dijalankan lewat command prompt.

5
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Start /wait title Y:\SQL Server x86\Servers\setup.exe /qb


INSTANCENAME=MSSQLSERVER ADDLOCAL=SQL_Engine,SQL_Tools90
SECURITYMODE=SQL SAPWD=bntraining DISABLENETWORKPROTOCOLS=0
SQLACCOUNT=NT AUTHORITY\SYSTEM AGTACCOUNT=NT
AUTHORITY\SYSTEM SQLBROWSERACCOUNT=NT AUTHORITY\SYSTEM

Ada beberapa parameter yang harus diperhatikan:


/wait membuat aplikasi yang dijalankan akan ditunggu sampai aplikasi
tersebut selesai (terminated).
title berisi judul dari window aplikasi yang dikehendaki.
/qb melakukan instalasi dengan menampilkan kotak pesan dan status
instalasi (meski tidak membutuhkan user untuk meng-klik Next).
Sedangkan /qn melakukan instalasi tanpa tampilan apapun / silent mode
(berhasil atau gagalnya instalasi langsung ditulis di log file).
INSTANCENAME digunakan untuk menentukan nama instance dari SQL
Server. Untuk menggunakan Default Instance Name gunakan script
INSTANCENAME=MSSQLSERVER.
ADDLOCAL digunakan untuk menentukan komponen apa yang akan di-
install maupun ditambahkan jika sebelumnya sudah pernah dilakukan
instalasi. Untuk database services saja digunakan SQL_Engine. Untuk SQL
Server Management Studio digunakan SQL_Tools90. Selengkapnya bisa
dibaca pada SQL Server Books Online.
SECURITYMODE digunakan untuk menentukan Authentication Mode, jika
tidak disebutkan, default nya adalah Windows Authentication. Jika sudah
menggunakan SQL Authentication (Mixed Mode), isi juga password untuk
user sa dengan SAPWD.
DISABLENETWORKPROTOCOLS mengatur apakah network support akan
dihidupkan / dimatikan. Default dari instalasi SQL Server 2005 adalah
mematikan network support sehingga database hanya bisa diakses secara
lokal. Untuk menghidupkannya, gunakan value 0.
SQLACCOUNT, AGTACCOUNT, SQLBROWSERACCOUNT mengatur
services account dimana SQL Server di-install. Untuk instalasi SQL_Engine,
3 account ini dibutuhkan. Contoh account yang bisa digunakan:

6
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

SQLACCOUNT=<domain\user>
SQLACCOUNT="NT AUTHORITY\SYSTEM"
SQLACCOUNT="NT AUTHORITY\NETWORK SERVICE"
SQLACCOUNT="NT AUTHORITY\LOCAL SERVICE"

1.3. Types of Database


Database pada hakekatnya merupakan kumpulan dari data-data yang
terorganisasi. Database terbagi dalam beberapa kategori yang umum, antara lain :
1. Paper-Based
Merupakan database paling sederhana yang disimpan dalam bentuk
kumpulan kertas dokumen yang terorganisasi.

2. Legacy Mainframe
Biasa dikenal dengan sebutan database VSAM (Virtual Storage Access
Method).

3. DBase
DBase mengandung ISAM (Indexed Sequential Access Method) yang
merupakan metode pengaksesan data secara berurutan yang memilki indeks.

4. RDBMS (Relational Database Management System)


Merupakan sistem database untuk jumlah user yang besar dengan integritas
data yang lebih baik.

5. Object-Oriented Databases
Menggunakan sistem object dalam penyimpanan data.

1.4. Connected Database System


Dalam membangun suatu sistem database terkoneksi, diperlukan adanya suatu
model arsitektur sistem yang jelas dan adanya service yang terintegrasi.

Arsitektur sistem database antara lain :


Single Tier (Host) Systems

7
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Single Tier (Host) Systems merupakan model yang lama. Sistem ini
menggunakan sebuah terminal yang menangani user services dan data services
sekaligus.
2 - Tier Architecture (Client/Server)
Arsitektur ini menggunakan sebuah sub tipe yaitu client centric dan server
centric. Client centric menggunakan sistem dimana user dan business services
terletak pada client dan data services terletak pada database server.
3 Tier Architecture
Model Arsitektur ini memecah 3 level service tersebut kedalam model model
logical yang terpisah sepenuhnya.
N Tier Architecture
Arsitektur ini mirip dengan arsitektur 3 tier, tetapi dengan jumlah server
yang lebih banyak.

Gambar 6: Multi-tier architecture.

1.5. Database Components


Database dalam SQL Server disusun dari sejumlah data, tetapi selain sebagai
media penyimpanan data, SQL Server dan database RDBMS lainnya juga melakukan
proses manipulasi data sehingga memudahkan kita untuk lebih mendefinisikan data-data
yang ada serta memberikan aturan-aturan pada data sesuai dengan proses bisnis.
Database merupakan sebuah grup dari objek berupa tabel dan objek-objek lainnya yang
bertugas menangani data - data yang terletak pada tabel dalam database tersebut.

8
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Komponen penyusun database pada SQL Server terdiri dari:


Physical database
Physical database merupakan kumpulan physical files yang membentuk
sebuah database.
Logical Database
Logical database merupakan bagian dari database yang terlihat oleh user.
System Database
SQL server menggunakan beberapa database special yang disebut system
databases untuk mencatat dan menjaga kondisi dari sistem SQL Server itu sendiri
serta database database lainnya.
User Database
User Database merupakan database yang dibuat oleh user.

Pada SQL Server, sebuah database tersusun dari beberapa file system. File-file ini
terbagi menjadi 3 tipe :
1. Primary Data Files
2. Secondary Data Files
3. Log Files

1.6. Transaction Log


Ketika terjadi suatu proses yang bertujuan untuk merubah isi suatu database, maka
perubahan yang ada tidak langsung diaplikasikan ke dalam database, tetapi perubahan
tersebut akan ditulis ke dalam transaction log. Lalu sewaktu-waktu database akan
menjalankan suatu proses yang disebut checkpoint, dimana pada proses ini perubahan
yang terjadi pada log file akan diaplikasikan langsung ke database.

1.7. Table
Object paling dasar pada database SQL Server adalah table. Table berada pada
posisi yang penting dalam sebuah database. Sebuah table terdiri dari baris-baris dan
kolom-kolom. Table menyimpan data yang sebenarnya dari sebuah database.
Contoh sebuah tabel dapat dilihat di bawah ini dalam tabel MSBARANG pada
database dbDagang :

9
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 7: Contoh sebuah table.

1.8. Index
Index adalah sebuah object yang merupakan bagian dari sebuah table atau view.
Index bekerja layaknya daftar isi pada sebuah buku, dimana kita disediakan beberapa key
(kata kunci) yang terurut untuk memudahkan kita dalam mencari informasi yang ingin
kita dapatkan.

1.9. Trigger
Trigger adalah sebuah object yang merupakan bagian dari table. Trigger
merupakan kode-kode logical yang akan dieksekusi apabila terjadi suatu proses yang
merubah keadaan table (insert, update, atau delete).

1.10. Constraint
Sebuah constraint adalah object yang merupakan bagian dari table. Constraint
berguna seperti layaknya trigger, yaitu untuk melakukan pengecekan pada data agar

10
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

memenuhi kondisi tertentu. Tetapi constraint tidak sama dengan trigger dimana
keduanya memiliki keunggulan tertentu.

1.11. View
Sebuah view bisa disebut sebagai suatu virtual table / logical table. Dalam berbagai
keadaan sebuah view digunakan layaknya sebuah tabel, tetapi view tidak benar-benar
menyimpan data. Data tetap ada di dalam table. Jadi sebuah view merupakan sebuah
penggambaran atau representasi dari data-data yang berada dalam table.

1.12. Stored Procedure


Stored procedure adalah object pada Transact-SQL. Stored procedure merupakan
kumpulan statement yang digabungkan untuk dieksekusi secara sekaligus apabila
dibutuhkan. Stored procedure memungkinkan kita untuk penggunaan variabel,
parameter, seleksi, dan perulangan yang akan membentuk sebuah fungsi yang
terstruktur. Bahkan sebuah stored procedure dapat dieksekusi dari aplikasi lain diluar
SQL Server (VB, Java, dll).

1.13. Rule
Rule dan constraints menyediakan kemampuan untuk membatasi informasi yang
dapat masuk ke dalam table. Jika suatu proses DML melanggar batasan yang diberikan
oleh rule / constraint maka proses tersebut akan dibatalkan. Perbedaan constraint
dengan rule adalah:
constraint yang merupakan meta data dari sebuah table,
rule merupakan object yang berdiri sendiri.

1.14. Default
Default memiliki kemampuan untuk memberikan nilai default pada suatu kolom jika
kolom tersebut tidak diisi. Tetapi default memilki dua tipe. Tipe pertama adalah default
yang berlaku sebagai sebuah meta data, dan tipe kedua adalah default sebagai sebuah
object berdiri sendiri. Mirip seperti constraint dan rule.

11
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

1.15. User-Defined Data Types


Pada SQL Server kita dapat mendefinisikan suatu tipe data yang diturunkan dari
tipe data yang ada di dalam sistem. Biasanya merupakan kumpulan dari beberapa tipe
data standar.

1.16. SQL Server Data Types


Selain object yang terdapat pada SQL Server, kita juga harus memahami berbagai
macam tipe data yang terdapat pada SQL Server. Tipe data pada SQL Server dapat
dirubah dari satu bentuk ke bentuk lainnya. SQL Server juga memiliki tipe data yang
disebut NULL. NULL digunakan pada saat kita tidak ingin medefinisikan suatu nilai.
Berikut diberikan beberapa tipe data pada SQL Server :
Ukuran
Nama Class Keterangan
(bytes)
Bit Integer 1 bit 1 atau 0
63 63
Bigint Integer 8 -2 to 2 - 1
32 31
Int Integer 4 - 2 to 2 - 1
15 15
Smallint Integer 2 - 2 to 2 - 1
Tinyint Integer 1 0 to 255
Decimal/Numeric Decimal/Numeric 5/9/13/17 Bilangan desimal
Money Money 8 Bilangan uang
Smallmoney Money 4 Bilangan uang
Float Approximate 4/8 -1.79E + 308 through 1.79E +
Numerics 308
DateTime Date / Time 2x4 1/1/1753 to 31/12/9999
Small DateTime Date / Time 2x2 1/1/1900 to 31/12/9999
Cursor Special Numeric - Kursor
TimeStamp Special Numeric 8 Angka unik yang berubah
(binary) apabila database diupdate
Unique Identifier Special Numeric 16 Identifier unik
(binary)
Char Character - Maksimum 8000 karakter,
ukuran tetap
VarChar Character - Maksimum 8000 karakter,

12
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

ukuran bervariasi
31
Text Character - Maksimum 2 -1 karakter,
ukuran bervariasi
Nchar Unicode - Maksimum 8000 karakter
unicode, ukuran tetap
NvarChar Unicode - Maksimum 8000 karakter
unicode, ukuran bervariasi
31
Ntext Unicode - Maksimum 2 -1 karakter
unicode, ukuran bervariasi
Binary Binary - Maksimum 8000 bytes biner,
ukuran tetap
VarBinary Binary - Maksimum 8000 bytes biner,
ukuran bervariasi
31
Image Binary - Maksimum 2 -1 bytes biner,
ukuran bervariasi
Table Other - Menyimpan result set
SQL_variant Other - Menyimpan data type lainnya

1.17. Collation
Collation menentukan pola bit data yang merepresentasikan setiap karakter dan
aturan bagaimana karakter itu disortir dan dibandingkan. Urutan penyimpanan fisik dari
setiap karakter string di dalam SQL Server 2005 ditentukan oleh collation.

1.18. Maximum Capacity


SQL Server 2005 mempunyai beberapa keterbatasan. Berikut adalah daftar
Maximum Capacity Specifications for SQL Server 2005 yang terdapat pada MSDN
Online:

Maximum sizes/numbers Maximum sizes/numbers


SQL Server 2005 Database
SQL Server 2005 (32- SQL Server 2005 (64-
Engine object
bit) bit)
1 65,536 * Network Packet 65,536 * Network Packet
Batch size
Size Size
Bytes per short string column 8,000 8,000
13
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Bytes per GROUP BY, ORDER BY 8,060 8,060


2
Bytes per index key 900 900
Bytes per foreign key 900 900
Bytes per primary key 900 900
8
Bytes per row 8,060 8,060
Bytes in source text of a stored Lesser of batch size or Lesser of batch size or
procedure 250 MB 250 MB
Bytes per varchar(max),
varbinary(max), xml, text, or 2^31-1 2^31-1
image column
Characters per ntext or
2^30-1 2^30-1
nvarchar(max) column
Clustered indexes per table 1 1
Limited only by number of Limited only by number of
Columns in GROUP BY, ORDER BY
bytes bytes
Columns or expressions in a
GROUP BY WITH CUBE or WITH 10 10
ROLLUP statement
7
Columns per index key 16 16
Columns per foreign key 16 16
Columns per primary key 16 16
Columns per base table 1,024 1,024
Columns per SELECT statement 4,096 4,096
Columns per INSERT statement 1,024 1,024
Maximum value of Maximum value of
Connections per client
configured connections configured connections
Database size 1,048,516 terabytes 1,048,516 terabytes
Databases per instance of SQL
32,767 32,767
Server
Filegroups per database 32,767 32,767
Files per database 32,767 32,767
File size (data) 16 terabytes 16 terabytes
File size (log) 2 terabytes 2 terabytes
Foreign key table references per
4 253 253
table
Identifier length (in characters) 128 128
Instances per computer 16 16
Length of a string containing SQL 65,536 * Network packet 65,536 * Network packet
1
statements (batch size) size size
Locks per connection Maximum locks per server Maximum locks per server
5
Locks per instance of SQL Server Up to 2,147,483,647 Limited only by memory
6
Nested stored procedure levels 32 32
Nested subqueries 32 32
Nested trigger levels 32 32
Nonclustered indexes per table 249 249
Parameters per stored procedure 2,100 2,100
Parameters per user-defined 2,100 2,100
14
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

function
REFERENCES per table 253 253
Limited by available Limited by available
Rows per table
storage storage
3 Limited by number of Limited by number of
Tables per database
objects in a database objects in a database
Partitions per partitioned table or
1,000 1,000
index
Statistics on non-indexed columns 2,000 2,000
Tables per SELECT statement 256 256
3 Limited by number of Limited by number of
Triggers per table
objects in a database objects in a database
UNIQUE indexes or constraints 249 nonclustered and 1 249 nonclustered and 1
per table clustered clustered
XML indexes 249 249
Diambil dari: Microsoft SQL Server 2005 Books Online

Untuk perbandingan antara SQL Server 2005 dengan SQL Server 7.0 dan SQL
Server 2000 bisa dilihat Maximum Capacity Specifications nya pada:

http://msdn2.microsoft.com/en-us/library/ms143432.aspx
Untuk SQL Server 2005

http://msdn2.microsoft.com/en-us/library/aa933149(SQL.80).aspx
Untuk SQL Server 7.0 dan SQL Server 2000

15
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

BAB 2
MANAJEMEN DATABASE SQL SERVER

Dalam SQL Server 2005, manajemen dan administrasi database dilakukan oleh
client tools, sedangkan server hanya bertugas untuk memberikan service kepada client-
client yang terkoneksi ke server. Server pada SQL Server 2005 diwakili oleh Windows
Service, dimana services tersebut bisa diakses menggunakan server tools seperti SQL
Server Configuration Manager, Reporting Services Configuration, dll. Sedangkan client
tools pada SQL Server 2005 terdiri dari books online, SQL Management Studio, Database
Engine Tuning Advisor, SQL Server Profiler, dll.

2.1. SQL Server Configuration Manager


Merupakan tools yang digunakan sebagai alat untuk melakukan administrasi
terhadap server atau service yang diberikan oleh SQL Server 2005. Program berada
pada:

Start All Programs Microsoft SQL Server 2005 Configuration Tools


SQL Server Configuration Manager

Gambar 8: SQL Server Configuration Manager

16
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Untuk mengaktifkan SQL Server services maka klik kanan SQL Server
(MSSQLSERVER) dan klik Start, sedangkan untuk mematikan services, klik tombol
Stop.

Aktivasi bisa dilakukan juga pada Computer Management, dengan membuka


aplikasi compmgmt.msc pada Start Run.

Gambar 9: Computer Management untuk mengatur services.

Untuk menjalankan services secara otomatis, klik kanan dan pilih Properties,
ubah startup type menjadi Automatic.

17
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 10: Service properties

2.2. Books Online


Books online merupakan fasilitas help yang diberikan oleh SQL Server. Books
online ada di:

Start All Programs Microsoft SQL Server 2005 Documentation and


Tutorials SQL Server Books Online

Berikut tampilan books online :

18
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 11: SQL Server Books Online

2.3. SQL Server Surface Area Configuration


SQL Server Surface Area Configuration digunakan untuk menghidupkan maupun
mematikan fitur, service, dan koneksi secara remote. Pengaturan ini penting mengingat
default setting dari SQL Server 2005 yang mematikan network support sehingga
database tidak bisa diakses melalui jaringan (remotely) setelah instalasi normal (kecuali
secara eksplisit menyebutkan DISABLENETWORKPROTOCOLS=0).
SQL Server Surface Area Configuration bisa ditemukan di:

Start All Programs Microsoft SQL Server 2005 Configuration Tools


SQL Server Surface Area Configuration

19
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Untuk mengubah network support, klik Surface Area Configuration for Services
and Connections, pilih Database Engine dan Remote Connections, set ke Local and
Remote Connections, gunakan protokol yang sering digunakan yaitu TCP/IP.

Gambar 12: SQL Server 2005 Surface Area

Gambar 13: Service and Connection Configuration

Note: Jangan lupa untuk mematikan Firewall pada Server untuk port yang bersangkutan.
Default port yang digunakan oleh service SQL Server (MSSQLSERVER) adalah 1433.

2.4. Microsoft SQL Server Management Studio


Management Studio adalah tools baru pada Microsoft SQL Server 2005 yang
ditujukan untuk Database Administrator dan Developer. Menggunakan GUI untuk
Database Management. Management Studio menggabungkan fungsi dari Enterprise

20
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Manager, Analysis Manager, dan Query Analyzer pada Microsoft SQL Server 2000. Untuk
membuka Management Studio:

Start All Programs Microsoft SQL Server 2005 SQL Server Management Studio

Atau ketik sqlwb pada Start Run.

Untuk masuk ke Management Studio, akan dilakukan authentication user terlebih


dahulu.

Gambar 14: Authentication dari Management Studio

Tipe Authentication ada 2 macam:


Windows Authentication : Authentication yang menggunakan username
dari windows.
SQL Server Authentication : Authentication yang mengabaikan username
dari windows, dengan menggunakan password dan user dari SQL Server
sendiri.

21
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 15: Tampilan awal SQL Server Management Studio 2005

2.5. Scripting
Fitur Query Analyzer yang terdapat pada MS SQL Server 2000 sudah digabungkan
pada SQL Server Management Studio. Klik tombol New Query untuk membuka window
untuk melakukan scripting.

Gambar 16: Letak tombol "New Query" untuk melakukan scripting

22
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Untuk menggunakan SQL script, tuliskan script pada window, blok script yang ingin
dieksekusi, tekan F5 atau klik Execute. Hasil akan bisa dilihat di bagian bawah Query
Window.

Gambar 17: Mengeksekusi SQL script

2.6. Creating Database


Management Studio dapat digunakan untuk membuat database. Pertama klik
kanan pada folder Databases di window sebelah kanan lalu pilih New Database .

23
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 18: Klik kanan Databases dan pilih New Database

Kemudian akan muncul window berikut ini :

Gambar 19: Creating new database

24
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Pada kolom Database name diatas masukkan nama database yang akan dibuat.
Lalu secara otomatis pada tabel telah didideskripsikan nama database file dan
transaction log file untuk database tersebut, path nya, dan ukurannya. Klik saja OK untuk
menyelesaikan pembuatan database.
Jika ingin menambahkan file tambahan untuk database, klik Add untuk
menambahkan file, meletakkan file pada suatu filegroup, dsb. Klik Script untuk melihat
SQL Script yang dihasilkan untuk pembuatan database tersebut di New Query Window.

2.7. Altering Database


Untuk mengubah nama file, ukuran, filegroup, dsb dari suatu database, pada Object
Explorer expand Databases, klik kanan pada nama database yang ingin diubah, klik
Properties.

Gambar 20: Klik kanan database dan pilih Properties

Pada Database Properties, klik Files, dan lakukan perubahan pada database
tersebut

25
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 21: Altering database

2.8. Dropping Database


Untuk menghapus database, bisa dilakukan dengan klik kanan pada nama database
yang ingin dihapus dan pilih Delete, klik OK untuk menghapusnya.

26
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

BAB 3
DATA TRANSFER

3.1. SQL Server Integration Services


Data Transfer dalam dunia database berarti otomatisasi dalam pengambilan,
pengubahan, dan pengisian database dari satu sumber ke sumber yang lainnya. Pada
Microsoft SQL Server 2000, digunakan package yang bernama Data Transfer Services
(DTS), namun pada Microsoft SQL Server 2005 fungsi tersebut sudah digantikan dengan
SQL Server Integration Services.
Untuk menggunakan SQL Server Integration Services (SSIS), diperlukan Microsoft
Visual Studio 2005 IDE, yang bisa juga diakses dengan menggunakan SQL Server
Business Intelligence Development Studio (BIDS).

3.2. SQL Server Business Intelligence Development Studio


BIDS memungkinkan pengguna untuk meng-edit package SSIS melalui suatu drag-
and-drop interface. BIDS sebenarnya merupakan aplikasi yang sama dengan Microsoft
Visual Studio .NET 2005, jadi bisa dijalankan dengan perintah devenv dari Start
Run. Lokasi BIDS ada di:

Start All Programs Microsoft SQL Server 2005 SQL Server Business
Intelligence Development Studio

3.3. Transferring Data


Untuk melakukan Data Transfer, klik File New Project Business Intelligence
Projects Integration Services Projects, klik OK untuk membuat project tersebut.

Pada tab Control Flow dibagian bawahnya ada Connection Managers, klik kanan
dan pilih New Connection. Muncul pilihan tipe data apa yang ingin digunakan, MS SQL
Server dan MS Access biasanya menggunakan OLEDB, klik OLEDB. Muncul list dari
koneksi yang sudah pernah dibuat, klik New untuk membuat koneksi baru. Buatlah 2

27
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

connection, 1 untuk data source, 1 untuk data destination. Ada beberapa parameter di
Connection Manager:
Provider: Penyedia koneksi untuk suatu tipe database. Digunakan untuk
menentukan tipe database yang digunakan.
Untuk SQL Server Connection:
o Server Name: Nama komputer server ataupun IP Address dari server.
o Log on to server: Tipe authentication yang digunakan untuk server
tersebut.
o Select or enter a database name: Nama database object yang ingin
digunakan.
Untuk MS Access Connection:
o Database file name: Nama file database yang ingin digunakan.
o Log on to database: Username dan password apabila database file
tersebut di-protect.
Untuk MS Excel Connection:
o Pilih EXCEL pada pilihan New Connection, pilih file Excel dan versi
Excel yang akan digunakan.
dst

Untuk melakukan Data Transfer, lakukan langkah-langkah berikut:


1 Pada tab Control Flow, buatlah object Data Flow Task.
2 Double click Data Flow Task tersebut, buatlah data source dari Data Flow
Sources (Untuk OLEDB buat object OLE DB Source, untuk Excel, buat object
Excel Source, dll).
3 Double click data source tersebut, masukkan Connection Manager yang dibuat
untuk data source, masukkan juga nama table yang akan di-transfer.
4 Buat data destination dengan cara seperti pembuatan data source, namun
menggunakan object dari Data Flow Destinations.
5 Tarik garis hijau dari data source ke data destination.
6 Double click data destination, masukkan Connection Manager yang dibuat
untuk data destination, masukkan juga nama table tujuan transfer (jika tidak
ada, buat table baru dengan meng-klik New).
7 Klik Mapping pada list di sebelah kiri, cocokkan kolom yang ada, jika sudah
benar, klik OK.

28
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 22: Data Transfer telah ter-setting dengan benar

Jika tidak ada tanda maka tidak ada masalah untuk mentransfer data, tekan F5
atau tanda untuk men-transfer data.

Note: Ada beberapa database (contoh: Excel) yang tidak mendukung konversi tipe data
Unicode. Hal ini bisa diatasi dengan mengubah semua tipe data dari database sumber
(char, varchar, text, ) menjadi tipe data Unicode yang dikenal di database tujuan (nchar,
nvarchar, ntext, )

3.4. Executing Package


Setelah sukses di-eksekusi, akan terbentuk satu file executable yang bisa
digunakan untuk melakukan transfer secara otomatis. File tersebut ada pada direktori
bin pada project yang bersangkutan. Normalnya file tersebut akan bernama
Package.dtsx. Klik Execute untuk menjalankan transfer data.

3.5. SQL Server Import and Export Wizard


SQL Server Import and Export Wizard menawarkan cara yang sederhana untuk
membuat suatu package Microsoft SQL Server 2005 Integration Services yang menyalin
data dari sumber ke tujuan.
Untuk melakukan export database, klik kanan pada database yang ingin di export,
pilih Tasks | Export Data. Muncul window SQL Server Import and Export Wizard, klik

29
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Next. Pada layar Data Source, pilih database yang ingin di export (tidak harus database
yang tadi dipilih), klik Next, pilih database tujuan, dan klik Next. Pilih Copy data from one
or more tables or views untuk export langsung dari suatu table atau view (jika ingin
export data tertentu saja, bisa dituliskan query syntax sendiri), klik Next. Pilih table atau
view yang ingin di export (bisa juga export semua table dengan Select All), klik Next.
Pada Save and Execute Package, pilih Execute Immediately (bisa juga disimpan sebagai
SSIS package agar bisa dieksekusi di lain waktu), klik Next dan Finish.

Gambar 23: Berhasil membuat Import Export Package

30
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

BAB 4
BACKUP AND RESTORE

4.1. Backup and Restore Introduction


Backup dan restore merupakan suatu operasi dasar yang biasa dilakukan oleh
seorang system administrator. Proses backup data biasanya meliputi 3 area :
1. Backup devices.
2. Operasi Backup
3. Operasi Restore

4.2. Backup Devices


Dalam proses backup pada SQL Server, diperlukan suatu media yang menjadi
tujuan backup tersebut. Media backup tersebut dalam SQL Server 2005 disebut device.
Suatu device dapat berupa tape maupun file. Device dapat dibuat melalui Management
Studio maupun T-SQL.

4.2.1. Creating Device from Management Studio


Untuk membuat device tanpa menggunakan script, expand Server Objects pada
Object Explorer di Management Studio. Klik kanan Backup Devices dan pilih New
Backup Device.

31
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 24: Creating backup device


Masukkan nama device tersebut dan tentukan jenis backup (Tape / File). Jika ingin
menggunakan file, tentukan nama file yang akan menjadi media backup tersebut.

4.2.2. Creating Device from T-SQL


Syntax :

sp_addumpdevice [ @devtype = ] 'device_type'


, [ @logicalname = ] 'logical_name'
, [ @physicalname = ] 'physical_name'
[ , { [ @cntrltype = ] controller_type |
[ @devstatus = ] 'device_status' }
]

Contoh sederhana pembuatan device menggunakan T-SQL:

sp_addumpdevice 'disk', 'mydiskdump', 'C:\Program


Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\
Northwind.bak'

32
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

4.3. Backup Operation


Setelah tersedianya media device, maka proses backup dapat dilakukan pada SQL
Server. Proses backup dapat menggunakan Management Studio atau statement T-SQL.

4.3.1. Backup using Management Studio


Untuk menjalankan proses backup, klik kanan database yang akan
dibackup, pilih Tasks | Back Up.

Ada 3 tipe backup:


Full Backup seluruh database.
Differential Backup terhadap perubahan sejak Full Backup
terakhir.
Transaction Log Backup terhadap Transacion Log. Backup ini
hanya ada pada Recovery model Full dan Bulk-logged.

Isi Name pada Backup Set dengan logical name dari backup tersebut.
Backup set will expire menentukan kapan backup akan bisa di-overwrite (After 0
days berarti backup bisa di-overwrite kapan saja).

33
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Note: Option Backup set will expire di SQL 2005 mempunyai arti berbeda
dengan SQL 2000. Di SQL 2000 expire membuat backup tersebut tidak bisa di-
restore lagi setelah periode tertentu, sedangkan pada SQL 2005 membuat
backup akan bisa di-overwrite setelah periode tertentu.

Pada bagian Destination, pilih backup device yang dikehendaki. Jika belum
ada, klik Add untuk membuat backup device. Klik OK, maka data akan di backup
pada backup device.

4.3.2. Backup using T-SQL


Syntax lengkap untuk database backup adalah:

BACKUP DATABASE { database_name | @database_name_var }


TO < backup_device > [ ,...n ]
[ [ MIRROR TO < backup_device > [ ,...n ] ] [ ...next-mirror ] ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] { CHECKSUM | NO_CHECKSUM } ]
[ [ , ] { STOP_ON_ERROR | CONTINUE_AFTER_ERROR } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] { FORMAT | NOFORMAT } ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword |
@mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
[ [ , ] COPY_ONLY ]
]
34
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Contoh sederhana backup menggunakan T-SQL:

BACKUP DATABASE [Northwind]


TO DISK = 'C:\Program Files\Microsoft SQL
Server\MSSQL.1\MSSQL\Backup\Northwind.bak'
WITH NAME = 'Northwind-Full Database Backup'

4.3.3. Backup Scheduling


Backup bisa dilakukan secara terjadwal. Berbeda dengan SQL 2000 yang
option untuk melakukan backup scheduling ada di proses ketika melakukan
mendefinisikan suatu backup. Pada SQL 2005, proses backup harus dibuat
menjadi suatu Job, yang nanti akan dimasukkan pada Schedule. Proses ini
membutuhkan service SQL Server Agent dalam keadaan hidup.

Gambar 25: Nyalakan SQL Server Agent untuk melakukan scheduling

Nyalakan service tersebut dengan melakukan klik kanan dan Start. Pada
bagian Jobs, klik kanan dan pilih New Job. Isi nama Job pada tab General. Pada
tab Steps, klik New, isikan nama Step tersebut dan berikan perintah BACKUP
DATABASE pada Command dan klik OK.

35
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 26: "New Job" setting

Kembali ke window New Job, pada bagian Schedules, klik New untuk
membuat schedule baru. Masukkan nama Schedule, pilih jadwal untuk proses
tersebut, dan klik OK.

Gambar 27: "New Job Schedule " setting

36
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Klik OK untuk menjalankan meresmikan jadwal tersebut. Pada contoh


tersebut, backup akan dijalankan setiap hari Minggu pukul 12:00 AM sejak tanggal
25 April 2007. Komponen-komponen penting dalam Scheduling adalah:
Schedule: Object untuk mengatur jadwal dan Job mana saja yang akan
dijalankan ketika waktunya tiba. Dalam satu Schedule, bisa ada lebih
dari satu Job yang akan dijalankan.
Job: Pekerjaan yang akan dilakukan. Satu Job, bisa terdiri dari
beberapa Step.
Step: Langkah-langkah yang harus dilakukan untuk membentuk satu
Job. Step mempunyai beberapa tipe yang telah didefinisikan untuk
melakukan suatu langkah. Jika langkah yang dikehendaki tidak ada
dalam daftar, pilih T-SQL dan tuliskan T-SQL Command sendiri.

4.4. Restore Operation


Operasi Restore digunakan untuk mengembalikan data ke kondisi dimana backup
terakhir dilakukan database tersebut. Seperti operasi backup, operasi restore juga bisa
dilakukan dengan dua cara, melalui Management Studio dan T-SQL Command.

4.4.1. Restore using Management Studio


Untuk melakukan Restore pada Management Studio, klik kanan
Databases, pilih Restore Database. Bisa juga dengan melakukan klik kanan pada
database yang hendak di restore, pilih Tasks | Restore | Database.
Pada pilihan Source for Restore , pilih From device, dan klik tombol
untuk memilih backup file. Klik Add dan pilih backup file yang diinginkan dan klik
OK. Kembali ke window Restore Database, pada Destination to Restore, pilih
tujuan database yang akan di Restore. Pilihan To a point in time memungkinkan
user untuk melakukan filtering terhadap Backup set yang akan di-restore sesuai
dengan waktu backup nya (Most recent possible berarti semua backup set dalam
backup file tersebut akan ditampilkan). Klik OK untuk melakukan Restore
Database, dan database akan kembali pada keadaan waktu dia di backup.
Jika database di restore di komputer yang berbeda (yang struktur path
nya tidak sama), atau terjadi suatu kondisi yang menyebabkan struktur path dulu
dengan sekarang berbeda, user bisa memilih tab Option pada window Restore

37
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Database dan melakukan editing secara manual kemana database akan di-
restore.
Jika user ingin melakukan restore differential atau transaction log, maka
user harus melakukan restore full terhadap database tersebut. Hal ini dapat
dilakukan dengan melakukan check pada semua backup set yang ingin di-restore.

Gambar 28: Tampilan "Restore Database"

4.4.2. Restore using T-SQL


Syntax lengkap untuk database restore adalah:

RESTORE DATABASE { database_name | @database_name_var }


[ FROM <backup_device> [ ,...n ] ]
[ WITH
[ { CHECKSUM | NO_CHECKSUM } ]
[ [ , ] { CONTINUE_AFTER_ERROR | STOP_ON_ERROR } ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]

38
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

[ [ , ] MEDIAPASSWORD = { mediapassword |
@mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] { RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
} ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] RESTRICTED_USER ]
[ [ , ] { REWIND | NOREWIND } ]
[ [ , ] STATS [ = percentage ] ]
[ [ , ] { STOPAT = { date_time | @date_time_var }
| STOPATMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER datetime ]
| STOPBEFOREMARK = { 'mark_name' | 'lsn:lsn_number' }
[ AFTER datetime ]
} ]
[ [ , ] { UNLOAD | NOUNLOAD } ]
]

Contoh sederhana backup menggunakan T-SQL:

RESTORE DATABASE dbDagang FROM DISK = 'C:\Program Files\


Microsoft SQL Server\MSSQL.2\MSSQL\Backup\dbDagangCoba'

Nama Property Deskripsi


Menentukan Connection String untuk melakukan koneksi.
Format nya berbeda namun hampir mirip untuk tiap tipe
koneksi.
ODBC: Menyertakan nama DSN yang digunakan.
ConnectionString
OLEDB: Menyertakan provider dan data source atau
bisa dikemas dalam file UDL.
SqlClient: Menyertakan data source, user name, dan
password.

39
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Menyatakan status koneksi dari connection. Berupa


enumeration. Biasa digunakan untuk mengecek apakah
State
koneksi sedang dibuka atau tidak.
Note: Read-Only Property

Nama Function Deskripsi


Membuka koneksi ke database. Perintah ini diperlukan jika
Open
melakukan manipulasi database tanpa melalui data adapter.
Close Menutup koneksi ke database.
Memulai database transaction. Transaction nanti bisa
BeginTransaction dilakukan commit (pengakuan traksaksi) ataupun rollback
(pembatalan transaksi).

40
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

BAB 5
INDEX TABLE

5.1. Index Introduction


Index berupa struktur data tambahan yang digunakan SQL Server untuk
mempercepat pengambilan data / pencarian data dari sumber data (biasa digunakan
untuk data yang sering diambil). Index dari suatu database disusun dalam struktur B-
tree.

Gambar 29: Root node dan branch node

Setiap page dalam suatu index disebut index page atau index node. Pencarian data
dimulai dari root node di level paling atas. Root node ini berisi sejumlah index row (yang
masing-masing index row berisi key value dan pointer ke suatu index page tertentu).

41
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 30: Pencarian data dalam B-Tree

Sama seperti root node, branch node juga berisi sejumlah index row yang
mengacu ke index page lainnya yang berada pada level dibawahnya. Struktur B-tree ini
dapat terdiri dari beberapa level, dan diawali oleh root node pada level 1.

Gambar 31: Index level

42
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Simple Index vs Composite Index

Simple Index : Index yang hanya terdiri dari satu field dari suatu tabel. Field ini
sebaiknya ditulisan dalam WHERE clause bila kita mau mengunakan index.

Gambar 32: Simple index

Composite Index: Index yang terdiri dari lebih dari satu field dari suatu tabel. SQL
Server 2005 dapat menampung suatu index yang terdiri dari 16 field atau panjangnya
900 byte.

Gambar 33: Composite index

Unique Index: index yang index key-nya hanya muncul satu kali, tak ada yang
sama. SQL Server tidak akan mengizinkan memasukan nilai yang sama untuk kolom
43
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

index-nya. Biasanya mengunakan constraint Primary Key atau constraint Unique.


Unique index dapat berupa simple index ataupun composite index.

Non-Unique Index : index yang memungkinkan index key-nya muncul lebih dari
satu kali. Non-Unique Index tidak se-efisien unique index karena membutuhkan proses
tambahan yaitu tambahan proses operasi I/O dalam mengambil data yang dicari. Tetapi
dalam beberapa kasus, yang tak memungkinkan menggunakan unique index, maka Non-
Unique Index masih memberikan hasil yang lebih baik daripada tidak ada index sama
sekali.

5.2. Types of Index


Tipe-tipe Index yang dimiliki SQL Server :
Clustered Index: index yang akan mengurutkan data secara fisik dan leaf
node berisi data sebenarnya.

Gambar 34: Clustered index

Keuntungan Clustered Index :


o Clustered Index lebih cepat daripada Nonclustered Index karena data
dari clustered index berada di leaf node dari B-Tree, maka begitu
sampai di leaf node maka data yang dicari langsung diperoleh, tidak
perlu proses lookup pada page data.

44
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

o Dalam 1 table hanya bisa memiliki 1 clustered index, karena data


terurut secara fisik. Tapi kita bisa membuat beberapa nonclustered
index di atas clustered index.

Kelemahan Clustered Index :


o Untuk membuat clustered index diperlukan free space yang cukup
besar
o Pemilihan index key yang tidak tepat juga akan memperlambat
query. Pilihlah index key yang tidak sering berubah, karena
perubahan pada clustered index akan mengubah semua
nonclustered index.
Nonclustered Index: Index yang pada leaf node-nya tidak berisi data
sebenarnya dari suatu tabel.
Urutan pembuatan nonclustered index tidaklah berpengaruh. Index ini tidak
mengubah urutan data secara fisik. Baris data pada leaf node diurutkan
sesuai dengan field yang di pilih sebagai index. Setiap barisnya berisi
sebuah pointer ke nomor page dan nomor baris dari data di dalam tabel, jika
tabel tersebut tidak mempunyai clustered index. Jika tabel tersebut
mempunyai clustered index, maka setiap baris berisi nilai dari key clustered
index.

Gambar 35: Nonclustered index pada table tanpa clustered index

45
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 36: Nonclustered index pada table dengan clustered index

5.3. Creating Index


Ada beberapa cara untuk membuat index :
1. Melalui Modify Table.
2. Menggunakan New Index dari Object Indexes.
3. Menggunakan T-SQL

Sebelum membuat index, tabel yang akan dibuatkan index-nya harus sudah
tersedia, atau dibuat bersamaan dengan pembuatan tabel.

5.3.1. Creating Index from Modify Table


Index dibuat ketika membuat table atau sewaktu meng-edit table. Untuk
meng-edit table, klik kanan table yang ingin di-edit, pilih Modify. Klik kanan pada
kolom yang ingin dijadikan index, dan pilih Indexes/Keys.

46
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 37: Membuat Index melalui "modify table"


.
Jika kolom yang dipilih telah dijadikan Primary Key, maka otomatis akan
terbentuk satu Index dari kolom tersebut. Edit property yang diperlukan. Jika ingin
menambahkan index, klik Add dan akan terbentuk index baru. Edit property dari
index baru tersebut, dan klik Close. Property yang penting:
Columns: Menentukan kolom apa yang akan dibuat index nya.
Is Unique: Menentukan apakah data yang akan dimasukkan ke kolom
tersebut harus unique.
Type: Menentukan tipe dari kolom index tersebut. Terdiri dari Primary
Key, Unique Key, dan Index (untuk index biasa).
(Name): Nama dari index tersebut.
Create As Clustered: Menentukan apakah index tersebut akan dibuat
clustered. Dalam 1 table hanya boleh ada 1 clustered index.
Filegroup or Partition Scheme Name : Menentukan index akan dibuat di
filegroup mana.

47
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 38: Editing Indexes/Keys

Gambar 39: Editing Indexes/Keys


48
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Note: Index yang dibuat dengan cara ini tidak akan tertulis di Object Indexes.

5.3.2. Creating Index using New Index from Object Indexes


Masuk ke tab Summary , pilih table yang akan dibuat index nya, klik kanan
Indexes, pilih New Index.

Gambar 40: Membuat Index melalui Object Indexes

Sama seperti cara sebelumnya, jika sudah ada Primary Key, maka secara
otomatis akan terbentuk 1 clustered index dari primary key tersebut, namun tidak
tercatat di Object Indexes.
Isi nama index dan tentukan tipe index tersebut. Jika sudah ada primary
key, maka sudah terbentuk clustered index untuk table tersebut dan tidak bisa
dibuat clustered index lagi. Klik Add untuk memilih kolom yang akan dibuat index

49
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

nya. Klik Option atau Storage untuk pilihan-pilihan lain, dan terakhir klik OK untuk
membuat index tersebut.

Gambar 41: Detil pembuatan Index

5.3.3. Creating Index using T-SQL


Syntax lengkap untuk membuat Index menggunakan T-SQL adalah:

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name


ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]

50
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

[ WITH ( <relational_index_option> [ ,...n ] ) ]


[ ON { partition_scheme_name ( column_name )
| filegroup_name
| default
}
]

Contoh untuk membuat Non-Clustered index pada table MSCUSTOMER:

CREATE NONCLUSTERED INDEX Index_PK_NmCustomer


ON MSCUSTOMER(nmcust)

5.4. Showing Information of Index


Untuk menampilkan informasi mengenai index, bisa digunakan Management Studio
pada Query Window dengan perintah:

sp_help [table_name] atau sp_helpindex [table_name]

Note: sp_help akan menampilkan semua informasi pada table tersebut termasuk index,
sedangkan sp_helpindex hanya akan menampilkan informasi mengenai index dalam table
tersebut.

5.5. Changing Index Name


Untuk menganti nama index, dapat digunakan cara pertama sewaktu membuat
table, yaitu dengan Modify pada table dan masuk ke Indexes/Keys. Ubah property
(Name) untuk mengubah nama index.
Bisa juga digunakan stored procedure sp_rename pada Query Window untuk
mengubah nama index. Syntax nya adalah:

sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'


[ , [ @objtype = ] 'object_type' ]

Contoh: sp_rename @objname = 'MSBARANG.PK_MSBARANG_1',


@newname = 'idxMsBarang',
@objtype = 'INDEX'

51
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

5.6. Dropping Index


Untuk menghapus index, dapat digunakan cara pertama sewaktu membuat table,
yaitu dengan Modify pada table dan masuk ke Indexes/Keys. Pilih index yang ingin
dihapus, klik Delete.
Bisa juga digunakan T-SQL Command pada Query Window dengan syntax:

DROP INDEX <table_name>.<index_name>

Contoh: DROP INDEX MSBARANG.Index_NmBarang

Note: Menghapus index menggunakan DROP INDEX tidak bisa digunakan untuk index
yang dibuat melalui primary key ataupun unique constraint. Untuk menghapus index
tersebut, gunakan cara yang pertama, melalui modify table.

52
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

BAB 6
SECURITY

6.1. Security Philosophy


Database server adalah server terpenting yang ada di suatu perusahaan. Database
menyimpan semua rahasia dari suatu perusahaan, mulai dari data klien, informasi
keuangan, data karyawan, sistem bisnis, dll. Apalagi dengan sistem online, dimana
database secara praktis terhubung oleh semua komputer di dunia (yang terhubung
dengan internet), yang berarti database tersebut bisa diakses maupun diserang dari
seluruh dunia.
Database security menjadi satu issue yang sangat krusial. Proteksi terhadap
database baik dari dalam maupun dari luar perlu dikelola dengan benar. Pada bagian ini
akan dibahas pengelolaan database pada lingkungan SQL Server itu sendiri. Beberapa
dasar dari security pada SQL Server adalah :
Penggunaan satu orang, satu login ID, dan satu password.
Ekspirasi password.
Panjang password.
Jumlah percobaan untuk login.
Tempat penyimpanan user dan password.
Suatu user bisa mengakses apa saja.
Suatu object bisa diakses oleh siapa saja.

SQL Server 2005 memiliki suatu pengaturan perijinan yang berupa suatu hirarki,
lebih dikenal dengan nama permission hierarchy. Hirarki yang paling sering digunakan
adalah server-level dan database-level, meski tidak menutup kemungkinan untuk
menggunakan pengecualian perijinan (discrete permission). Berikut adalah ilustrasi dari
Database Engine permissions hierarchies secara keseluruhan.

53
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 42: Database Engine Permissions Hierarchies

Pada SQL Server 2005, terdapat beberapa Object yang berkaitan dengan
security secara keseluruhan. Beberapa diantaranya adalah:
1. Login

54
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

2. User
3. Securable
4. Principal
5. Permission
6. Schema
7. Credential
8. Certificate
9. Synonim

6.2. Login
Pada SQL Server 2005 (SQL Server 7.0 ke atas) terdapat 2 pilihan security :
1. Windows Authentication
Jika menggunakan Windows Authentication, sewaktu masuk ke Management
Studio tidak perlu mengisikan username. SQL Server akan menggunakan
account dari Microsoft Windows untuk melakukan login ke SQL Server secara
otomatis. Sering disebut juga Windows Login.
2. Mixed Mode (Windows Authentication + SQL Server Authentication)
Jika menggunakan Mixed Mode, user harus mengisikan username dan
password yang didefinisikan di SQL Server itu sendiri, disamping menggunakan
Windows Login untuk masuk ke Windows itu sendiri. Dengan kata lain,
menggunakan gabungan dari Windows Login dan SQL Server Login. Sering
hanya disebut sebagai SQL Server Login .

6.2.1. Membuat Login


Login merupakan pintu masuk ke SQL Server, singkatnya login merupakan
penentu apakah seseorang berhak untuk masuk kedalam SQL Server atau tidak.
Untuk hak akses database, table, dll ditentukan oleh User (dibahas pada subbab
selanjutnya). Untuk membuat login baru, pada Management Studio, klik Security ,
klik kanan Logins, pilih New Login.

55
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 43: Tampilan utama Security

Pilih jenis login yang akan dibuat, apakah Windows Authentication atau SQL
Server Authentication. Jika memilih Windows Authentication, klik Search dan isikan
Windows Account yang ingin diberikan login ke SQL Server (account tersebut
harus sudah ada). Jika memilih membuat SQL Server Account, isi Login Name dan
Password.
Enforce password policy: Mengecek apakah password sudah cukup kuat
atau belum. Jika dijalankan pada Window Server 2003 atau yang lebih
baru, SQL Server 2005 dapat menggunakan mekanisme Windows
Password Policy yang terdapat pada NetValidatePasswordPolicy() API.
Enforce password expiration: Menentukan apakah password akan
expire setelah batas waktu tertentu. Enforce password policy harus
diaktifkan agar checkbox ini bisa dipilih.
User must change password at next login: Mengharuskan user untuk
mengganti password nya setelah dia login untuk pertama kalinya. Hal ini
memang seharusnya dilakukan. Option ini hanya di-support untuk
Windows Server 2003.

56
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Default database: Menentukan default database yang bisa diakses oleh


login ini.

Pada Server Roles, bisa dipilih role dari login tersebut. Role akan dijelaskan
lebih detil pada sub bab selanjutnya, untuk contoh gunakan role sysadmin.

57
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 44: Server roles

Pada User Mapping, pilih database apa saja yang bisa diakses oleh user
tersebut. Pada Database role membership, bisa dipilih user tersebut boleh
melakukan apa saja pada database tersebut. Role akan dijelaskan lebih detil pada
sub bab selanjutnya, untuk contoh gunakan role db_owner.

58
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Gambar 45: Database roles

Pada Status, bisa dipilih apakah user akan boleh mengakses Database
Engine, dan apakah user masih diaktifkan atau tidak.

Gambar 46: User status


59
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

6.2.2. Meng-edit Login


Untuk meng-edit login, klik kanan pada nama login pada Security | Logins
dan klik Properties.

6.2.3. Menghapus Login


Untuk menghapus login, klik kanan pada nama login pada
Security | Logins dan klik Delete, klik OK untuk mengkonfirmasi penghapusan
login.

6.2.4. T-SQL Command


Perintah T-SQL untuk manipulasi login adalah:
CREATE LOGIN
ALTER LOGIN
DROP LOGIN

6.3. User
User berbeda dengan login. User adalah nama yang digunakan suatu login untuk
mengakses setiap object dari SQL Server. Setiap login hanya boleh memiliki satu user
pada satu database dan sebaliknya. User boleh menggunakan nama yang sama dengan
login, namun juga bisa berbeda.
Untuk membuat user pada suatu database, pembuat user harus sedang aktif pada
database yang bersangkutan. Syntax lengkap untuk membuat user adalah:

CREATE USER user_name


[ { { FOR | FROM }
{
LOGIN login_name
| CERTIFICATE cert_name
| ASYMMETRIC KEY asym_key_name
}
| WITHOUT LOGIN
]
[ WITH DEFAULT_SCHEMA = schema_name ]

60
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Contoh:

CREATE LOGIN Wendy


WITH PASSWORD = '123456';
USE MS_Finance;
CREATE USER Wendy_Finance FOR LOGIN Wendy

Perintah tersebut akan membuat login Wendy dan user Wendy_Finance untuk
login tersebut pada tabel MS_Finance. Karena tidak dituliskan secara spesifik, default
schema yang digunakan adalah dbo (database owner).

6.4. Securable
Securable adalah resource dimana SQL Server Database Engine authorization
system mengatur regulasi akses. Beberapa securable dapat mengandung securable lain,
membentuk suatu nested hierarchy yang disebut scopes, dimana scopes tersebut bisa
di-secure juga. Securable scope yang ada adalah Server, Database, dan Schema .

6.4.1. Securable scope: Server


Mengandung:
Endpoint
Login
Database

6.4.2. Securable scope: Database


Mengandung:
User
Role
Application Role
Assembly
Message Type

61
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Route
Service
Remote Service Binding
Fulltext Catalog
Certificate
Assymetric Key
Symetric Key
Contract
Schema

6.4.3. Securable scope: Schema


Mengandung:
Type
XML Schema Collection
Object

Object sendiri mengandung:


Aggregate
Constraint
Function
Procedure
Queue
Statistic
Synonym
Table
View

6.5. Principal
Principal adalah individual, group, maupun process yang bisa meminta SQL Server
resource. Principal juga bisa diatur secara hirarkis. Scope dari principal bergantung pada
scope definisi dari principal itu sendiri, apakah principal itu indivisible atau collection.
Windows Login merupakan contoh indivisible principal, sedangkan Windows Group
62
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

merupakan contoh principal yang merupakan collection. Setiap principal mempunyai


unique security identifier (SID).

6.5.1. Windows-level Principals


Merupakan principal yang diatur dan berbasiskan Windows. Yang termasuk
Windows-level Principals adalah:
Windows Domain Login
Windows Login

Windows-level Principal tidak akan dibahas secara detil karena lebih


berkaitan dengan sistem operasi Microsoft Windows itu sendiri.

Note: Short Course Network Windows 2003 Server Environment di Binus


Center menyediakan pelatihan lebih detil mengenai topik ini.

6.5.2. Server-level Principals


Merupakan principal yang berlaku global pada SQL Server 2005 untuk
mengatur hak pada server-level. Ada beberapa hak yang telah disediakan oleh SQL
Server (lebih dikenal dengan nama Fixed Server Role).
Setiap anggota dari Fixed Server Role dapat menambahkan login dengan
role yang sama. Fixed Server Role yang telah disediakan pada SQL Server 2005
adalah:
bulkadmin: Dapat menjalankan BULK INSERT statement.
dbcreator: Dapat melakukan CREATE, ALTER, DROP, dan RESTORE
semua database.
diskadmin: Dapat me-manage disk files.
processadmin: Dapat menghentikan proses yang berjalan pada instance
dari Database Engine.
securityadmin: me-manage logins dan property nya. Bisa melakukan
GRANT, DENY, dan REVOKE server-level permissions maupun database-
level permissions. Dapat juga melakukan reset pada password logins SQL
Server.

63
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

serveradmin: Dapat mengganti konfigurasi server dan mematikan


server.
setupadmin: Dapat menambah dan menghapus linked servers dan bisa
menjalankan beberapa system stored procedure.
sysadmin: Dapat melakukan semua aktifitas pada Database Engine.
Secara default, semua anggota dari Windows BUILTIN\Administrators
group (local administrators group) menjadi anggota dari sysadmin.

Fixed Server Role Server-level Permission


bulkadmin Granted: ADMINISTER BULK OPERATIONS
dbcreator Granted: CREATE DATABASE
diskadmin Granted: ALTER RESOURCES
processadmin Granted: ALTER ANY CONNECTION, ALTER SERVER STATE
securityadmin Granted: ALTER ANY LOGIN
Granted: ALTER ANY ENDPOINT, ALTER RESOURCES, ALTER
serveradmin SERVER STATE, ALTER SETTINGS, SHUTDOWN, VIEW SERVER
STATE
setupadmin Granted: ALTER ANY LINKED SERVER
sysadmin Granted with GRANT option: CONTROL SERVER
Diambil dari: Microsoft SQL Server 2005 Books Online.

6.5.3. Database-level Principals


Merupakan principal yang berlaku pada setiap database untuk hak akses
atas database tersebut. Ada beberapa hak yang telah disediakan oleh SQL Server
(lebih dikenal dengan nama Fixed Database Role).
Setiap anggota dari db_owner dan db_securityadmin dapat mengatur
keanggotaan fixed database role dari database tersebut, namun hanya anggota
dari db_owner yang bisa menambahkan anggota pada db_owner. Fixed Database
Role yang telah disediakan adalah:
db_accessadmin : Dapat menambah dan menghapus akses untuk
Windows logins, Windows groups, dan SQL Server logins.
db_backupoperator: Dapat melakukan backup pada database.
db_datareader: Dapat membaca data dari semua user-table.
64
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

db_datawriter: Dapat menambah, mengganti, dan menghapus data dari


semua user-table.
db_ddladmin: Dapat menjalankan semua perintah DDL dalam database.
db_denydatareader: Tidak dapat membaca data apapun dari semua
user-table.
db_denydatawriter: Tidak dapat menambah, mengganti, dan menghapus
data dari semua user-table.
db_owner: Dapat melakukan semua aktifitas konfigurasi dan
maintenance pada database
db_securityadmin : Dapat mengatur role membership dan mengatur
permissions.

Server-level
Fixed Database Role Database-level Permission
Permission
Granted: ALTER ANY USER, CREATE Granted: VIEW ANY
db_accessadmin
SCHEMA DATABASE
db_accessadmin Granted with GRANT option: CONNECT
Granted: BACKUP DATABASE, BACKUP Granted: VIEW ANY
db_backupoperator
LOG, CHECKPOINT DATABASE
Granted: VIEW ANY
db_datareader Granted: SELECT
DATABASE
Granted: VIEW ANY
db_datawriter Granted: DELETE, INSERT, UPDATE
DATABASE
Granted: ALTER ANY ASSEMBLY, ALTER
ANY ASYMMETRIC KEY, ALTER ANY
CERTIFICATE, ALTER ANY CONTRACT,
ALTER ANY DATABASE DDL TRIGGER,
ALTER ANY DATABASE EVENT,
NOTIFICATION, ALTER ANY DATASPACE,
ALTER ANY FULLTEXT CATALOG, ALTER
ANY MESSAGE TYPE, ALTER ANY REMOTE
SERVICE BINDING, ALTER ANY ROUTE, Granted: VIEW ANY
db_ddladmin
ALTER ANY SCHEMA, ALTER ANY DATABASE
SERVICE, ALTER ANY SYMMETRIC KEY,
CHECKPOINT, CREATE AGGREGATE,
CREATE DEFAULT, CREATE FUNCTION,
CREATE PROCEDURE, CREATE QUEUE,
CREATE RULE, CREATE SYNONYM,
CREATE TABLE, CREATE TYPE, CREATE
VIEW, CREATE XML SCHEMA COLLECTION,
REFERENCES
Granted: VIEW ANY
db_denydatareader Denied: SELECT
DATABASE
db_denydatawriter Denied: DELETE, INSERT, UPDATE

65
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Granted: VIEW ANY


db_owner Granted with GRANT option: CONTROL
DATABASE
Granted: ALTER ANY APPLICATION ROLE,
Granted: VIEW ANY
db_securityadmin ALTER ANY ROLE, CREATE SCHEMA, VIEW
DATABASE
DEFINITION
Diambil dari: Microsoft SQL Server 2005 Books Online.

Note: Setiap database user sendiri merupakan anggota dari public database role.
Jika suatu user tidak di-grant atau deny suatu permission yang spesifik, maka
secara default user tersebut mewarisi permission public pada securable tersebut.

Note: Setiap database yang dibuat akan secara otomatis mempunyai user Guest .
Permission dari Guest akan diwariskan pada semua user yang tidak memiliki user
account pada database tersebut. User Guest tidak bisa di-drop.

6.6. Permissions
Setiap securable pada SQL Server 2005 mempunyai permission yang bisa
dianugerahkan (granted) pada suatu principal. Secara sederhana dapat berarti sebagai
suatu aturan yang menunjukkan siapa yang boleh mengakses apa. Hal ini merupakan titik
vital dari suatu database security, untuk menunjukkan suatu data dapat diakses oleh
siapa saja dan suatu user dapat mengakses data apa saja. Secara umum terdapat 3
perintah untuk mengatur permission, yaitu:

6.6.1. Grant
Memberikan permission untuk suatu principal pada suatu securable. Sintaks
GRANT yang sebenarnya sangat kompleks, secara sederhana bisa dideskripsikan
sebagai berikut:

GRANT { ALL [ PRIVILEGES ] }


| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ WITH GRANT OPTION ] [ AS principal ]

Contoh:

66
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

USE DBFinance
GO
CREATE USER Wendy_Finance FOR LOGIN Wendy
GO
GRANT SELECT ON DATABASE::DBFinance TO Wendy_Finance

Contoh tersebut akan membuat user [Wendy_Finance] pada database


[DBFinance] untuk login [Wendy] dan memberikan akses pada user tersebut
untuk melakukan SELECT pada semua object dari database tersebut. Contoh lain:

USE DBFinance
GO
GRANT INSERT ON OBJECT::dbo.TbInvoice TO Wendy_Finance

Contoh tersebut akan memberikan akses pada user [Wendy_Finance]


untuk melakukan INSERT pada table [TbInvoice] pada database
[DBFinance].

6.6.2. Deny
Merupakan permission untuk melarang suatu principal untuk melakukan
sesuatu pada suatu securable. Sintaks DENY yang sebenarnya sangat kompleks,
secara sederhana bisa dideskripsikan sebagai berikut:

DENY { ALL [ PRIVILEGES ] }


| permission [ ( column [ ,...n ] ) ] [ ,...n ]
[ ON [ class :: ] securable ] TO principal [ ,...n ]
[ CASCADE] [ AS principal ]

Contoh:

DENY SELECT ON DATABASE::DBFinance TO Wendy_Finance

Contoh tersebut akan melarang user [Wendy_Finance] untuk melakukan


SELECT pada semua object dari database tersebut. Contoh lain:
67
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

DENY INSERT ON OBJECT::dbo.TbInvoice TO Wendy_Finance

Contoh tersebut akan melarang user [Wendy_Finance] untuk melakukan


INSERT pada table [TbInvoice] pada database [DBFinance].

6.6.3. Revoke
Mencabut permission baik GRANT maupun DENY yang telah diberikan.
Sintaks REVOKE yang sebenarnya sangat kompleks, secara sederhana bisa
dideskripsikan sebagai berikut:

REVOKE [ GRANT OPTION FOR ]


{
[ ALL [ PRIVILEGES ] ]
|
permission [ ( column [ ,...n ] ) ] [ ,...n ]
}
[ ON [ class :: ] securable ]
{ TO | FROM } principal [ ,...n ]
[ CASCADE] [ AS principal ]

Contoh:

REVOKE SELECT ON DATABASE::DBFinance TO Wendy_Finance

Contoh tersebut akan mencabut perintah GRANT SELECT maupun DENY


SELECT untuk user [Wendy_Finance] pada semua object dari database
tersebut. Contoh lain:

REVOKE INSERT ON OBJECT::dbo.TbInvoice TO Wendy_Finance

68
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Contoh tersebut akan mencabut perintah GRANT INSERT maupun DENY


INSERT untuk user [Wendy_Finance] pada table [TbInvoice] dari database
[DBFinance].

Note: GRANT ALL, DENY ALL, dan REVOKE ALL sudah tidak seharusnya digunakan lagi
dan dipertahankan hanya untuk compatibility saja. Perintah ALL tersebut tidak merujuk
pada semua permission yang ada. Permission yang dirujuk oleh perintah ALL adalah:
If the securable is a database, "ALL" means BACKUP DATABASE, BACKUP LOG,
CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE
PROCEDURE, CREATE RULE, CREATE TABLE, and CREATE VIEW.
If the securable is a scalar function, "ALL" means EXECUTE and REFERENCES.
If the securable is a table-valued function, "ALL" means DELETE, INSERT,
REFERENCES, SELECT, and UPDATE.
If the securable is a stored procedure, "ALL" means DELETE, EXECUTE, INSERT,
SELECT, and UPDATE.
If the securable is a table, "ALL" means DELETE, INSERT, REFERENCES,
SELECT, and UPDATE.
If the securable is a view, "ALL" means DELETE, INSERT, REFERENCES, SELECT,
and UPDATE.

Note: Perintah ALL telah digantikan dengan perintah CONTROL. Contoh: GRANT
CONTROL, DENY CONTROL, REVOKE CONTROL untuk memberikan semua permission
yang dimiliki oleh pemberi permission.

6.7. Schema
Schema adalah suatu collection dari database entity yang membentuk sebuah
namespace tunggal. Sebuah namespace merupakan suatu set dimana setiap elemen
mempunyai suatu nama yang unique. Sebagai contoh, untuk mencegah name collision, 2
table tidak boleh memiliki nama yang sama jika diletakkan pada schema yang sama,
namun bisa dilakukan jika diletakkan pada schema yang berbeda.
Salah satu konsep baru yang diperkenalkan pada SQL Server 2005 adalah
User-Schema Separation. Pada SQL Server 2000, setiap object yang dibuat oleh suatu
user akan dimiliki oleh user tersebut. Adapun perintah CREATE SCHEMA pada SQL
Server 2000 tidak bisa memberikan nama pada schema tersebut. Akibatnya terjadi
kesulitan untuk melakukan drop user karena semua object yang dimiliki oleh user
tersebut harus di-reassign atau di-drop dan di-create ulang. Contoh:

69
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Pada suatu database SQL Server 2000 mengandung object:


accounting.ap.george.reconciliation

Object tersebut dimiliki oleh user george. Jika administrator ingin melakukan
drop pada user tersebut, dia harus men-drop object tersebut atau mengganti
kepemilikan object tersebut dengan perintah ALTER AUTHORIZATION. Setelah
kepemilikan diganti, object tersebut menjadi:

accounting.ap.sandra.reconciliation

Melakukan transfer ownership akan mengganti full-name dari object tersebut


sehingga semua code yang mengacu pada accounting.ap.george.reconciliation
harus diganti juga.

SQL Server 2005 memperkenalkan konsep pemisahan antara user dengan schema.
Pada SQL Server 2005, schema ada secara independent dari user yang membuat object
tersebut. Kepemilikan dari suatu schema dapat dipindahkan tanpa mengganti namanya.
Object juga bisa dibuat dengan menggunakan nama yang lebih user-friendly. Contohnya
adalah daripada menggunakan nama accounting.ap.sandra.reconciliation,
dapat dibuat schema dengan nama accounting.ap.invoice.reconciliation. Nama
ini tidak perlu diganti ketika user di-drop dari database karena invoice bukan suatu user.
Hal ini akan menyederhanakan pekerjaan database administrator dan developer.

6.7.1. Object Full-Name


Setiap object pada SQL Server 2005 selalu memiliki nama, namun nama
yang dituliskan ketika membuat suatu object (table, stored procedure, dsb.)
biasanya berupa short name saja. SQL Server akan membuat object tersebut
dengan default dari setiap elemen penyusun full-name. Sebuah object full-name
terdiri dari:

Server.Database.Schema_Name.Object_Name

70
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Contoh: Sebuah table bernama Tb_Invoice terletak pada server


ASTRASERVER, database Db_Astra_Finance, dan user pembuat tidak
mempunyai default schema sehingga secara default menggunakan dbo schema.
Maka full-name dari table tersebut menjadi:

ASTRASERVER.Db_Astra_Finance.dbo.Tb_Invoice

Jika terdapat suatu perusahaan yang sangat besar dengan beberapa server
serta database, maka penggunaan full-name menjadi mutlak diperlukan untuk
mencegah kesalahan referensi, sehingga semua query dari aplikasi berjalan harus
merujuk pada full-name. Contoh:

SELECT * FROM ASTRASERVER.Db_Astra_Finance.dbo.Tb_Invoice

Note: User yang dibuat tanpa menyebutkan default schema secara otomatis akan
menggunakan dbo schema.

6.7.2. Membuat Schema


Untuk membuat schema bisa digunakan perintah CREATE SCHEMA, dimana
sintaks nya adalah:

CREATE SCHEMA schema_name_clause [ <schema_element> [ , ...n ]]

<schema_name_clause> ::=
{
schema_name
| AUTHORIZATION owner_name
| schema_name AUTHORIZATION owner_name
}
<schema_element> ::=
{
table_definition | view_definition | grant_statement
revoke_statement | deny_statement
}
71
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Contoh untuk membuat schema dengan nama Finance dan schema


tersebut menjadi milik user Wendy_Finance:

CREATE SCHEMA Finance AUTHORIZATION Wendy_Finance

Contoh untuk membuat schema dengan spesifikasi seperti diatas dan


sekaligus membuat table dengan schema tersebut adalah:

CREATE SCHEMA Finance AUTHORIZATION Wendy_Finance


CREATE TABLE Tb_Invoice
(
invoice_id nchar(3) PRIMARY KEY,
invoice_name nvarchar(20)
)

6.7.3. Mentransfer Object antar Schema


Untuk mentransfer suatu object dari satu schema ke schema lain digunakan
perintah ALTER SCHEMA. Sintaksnya adalah:

ALTER SCHEMA schema_name TRANSFER object_name

Perintah tersebut akan memindahkan kepemilikan object_name kepada


schema_name. User harus aktif pada database yang bersangkutan untuk dapat
melakukan transfer ke schema lain.
Contoh untuk mentransfer table Tb_Invoice diatas kepada schema dbo,
user harus berada pada database yang mempunyai table Tb_Invoice tersebut:

ALTER SCHEMA dbo TRANSFER Tb_Invoice

Note: schema_name tidak bisa diisi dengan SYS atau INFORMATION_SCHEMA.

6.7.4. Menghapus Schema


Untuk menghapus schema, digunakan perintah DROP SCHEMA. adalah:
72
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

DROP SCHEMA schema_name


Contoh:

DROP SCHEMA Finance

Note: Meskipun jarang sekali digunakan, untuk menghapus suatu schema, tidak
boleh ada object yang masih merujuk ke schema tersebut. Object tersebut harus di-
drop dan re-create atau ditransfer kepemilikannya ke schema lain terlebih dahulu.

6.7.5. Mentransfer Schema Ownership dan Menghapus User


Poin terpenting dari konsep user-schema separation adalah menghapus
user tanpa repot mengubah referensi dari object yang dimiliki oleh user tersebut.
Hal ini bisa dilakukan pada SQL Server 2005 karena pemilik setiap object adalah
suatu schema.
Konsep untuk menghapus user pada SQL Server 2005 adalah mentransfer
setiap kepemilikan schema dari user yang ingin dihapus ke user lain terlebih dahulu
baru menghapus user tersebut.
Untuk mentransfer kepemilikan digunakan perintah ALTER
AUTHORIZATION, dimana sintaksnya adalah:

ALTER AUTHORIZATION
ON [ <entity_type> :: ] entity_name
TO { SCHEMA OWNER | principal_name }

Contoh untuk menghapus user Wendy_Finance yang memiliki schema


Finance. Prosesnya adalah mentransfer kepemilikan schema Finance kepada
user, misalkan user dbo (default user untuk semua database dari login sa), baru
setelah itu melakukan drop pada user tersebut.

ALTER AUTHORIZATION ON SCHEMA::Finance TO dbo


DROP USER Wendy_Finance

Dengan melakukan hal ini, maka semua reference atas object yang dimiliki
oleh user tersebut tidak akan berubah karena full-name suatu object menggunakan

73
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

schema_name, sehingga menghapus user bukan merupakan suatu masalah lagi


apabila kepemilikan schema sudah ditransfer.

6.8. Credential
Credential merupakan suatu rekaman informasi autentifikasi yang digunakan untuk
mengakses resource diluar SQL Server. Biasanya, credential digunakan untuk memberi
akses pada suatu SQL Server user untuk memiliki hak dari suatu Windows user. Isi dari
credential sendiri biasanya adalah identity dan password sebuah Windows user.
Setelah membuat credential, perintah CREATE LOGIN atau ALTER LOGIN bisa
dipakai untuk mem-bound suatu login dengan suatu credential. Sebuah credential bisa di-
bound dengan beberapa login, namun satu login hanya bisa di-bound pada satu
credential.

Note: Konsep ini baru ada pada SQL Server 2005.

6.9. Certificate & Asymmetric Keys


Certificate merupakan sebuah keamanan database-level yang mengikuti standar
X.509 dan mendukung X.509 V1. Dalam bahasa yang lebih umum, certificate merupakan
suatu login yang tidak diakses secara konvensional dengan menggunakan username dan
password. Certificate mengijinkan user untuk login dengan menggunakan, misalnya
Smart Card ataupun cara lain. Perintah CREATE CERTIFICATE dapat digunakan untuk
me-load suatu certificate dari sebuah file atau assembly.

Note: Konsep ini baru ada pada SQL Server 2005.

6.10. Synonym
Synonym sebenarnya hanya merupakan sebuah shortcut untuk mengakses suatu
object pada SQL Server. Misalkan suatu perusahaan mempunyai lebih dari satu server,
untuk mengambil data pada server lain, harus digunakan object full-name atau sering
disebut four-part name. Contohnya adalah ketika aplikasi dari Server2 ingin mengambil
data pada table Employee pada database AdventureWorks yang terletak pada server
Server1, maka harus digunakan: Server1.AdventureWorks.dbo.Employee.

74
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

Dengan menggunakan synonym, aplikasi client tinggal memanggil nama synonym


tersebut untuk mengakses resource yang sebenarnya harus dituliskan secara lengkap.
Andaikata object tersebut dipindahkan, aplikasi client tidak perlu merubah semua
referensi ke object tersebut, cukup dengan mengganti referensi dari synonym tersebut.

Note: SQL Server 2005 tidak menyediakan perintah ALTER SYNONYM sehingga untuk
mengganti referensi synonym harus dilakukan dengan drop and re-create.

Note: Fitur ini baru pada SQL Server 2005.

6.10.1. Membuat Synonym


Untuk membuat synonym digunakan perintah CREATE SYNONYM.
Sintaksnya adalah:

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR < object >

< object > :: =


{
[ server_name.[ database_name ] . [ schema_name_2 ].|
database_name . [ schema_name_2 ].| schema_name_2. ]
object_name
}

Contoh:

CREATE SYNONYM Jakarta_Finance.Syn_Invoice


FOR CabSemarang.DB_Finance.Semarang_Finance.Invoice

SELECT * FROM Jakarta_Finance.Syn_Invoice

6.10.2. Menghapus Synonym


Untuk menghapus suatu synonym digunakan perintah DROP SYNONYM.
Sintaksnya adalah:

75
ADMINISTERING DATABASE SERVER WITH MICROSOFT SQL SERVER 2005

DROP SYNONYM [ schema. ] synonym_name

Contoh:

DROP SYNONYM Jakarta_Finance.Syn_Invoice

76

You might also like