Mengenal Schema pada SQL

Sabtu, 12 Januari 2019

Mengenal Schema pada SQL


Mengenal Schema pada SQL



Schema adalah suatu layer dalam SQL server security. Pada SQL Server 2000 sebenarnya schema ini sudah ada, tetapi tidak terdapat perbedaan dengan user database karena setiap user hanya memiliki satu schema saja yaitu owner dari dabase tersebut. schema pada saat itu juga tidak bisa dibuat atau dinamai secara eksplisit.
Pada SQl 2005 dan 2008, schema masih merupakan koleksi objek yang dimiliki oleh user database, tetapi hubungan schema dan user tidak lagi one to one. User dapat memiliki lebih dari satu schema, dan jika schema dimiliki oleh SQL server role atau Group, skema dimiliki oleh banyak user.
Level objek yang diamanakan menggunakan konsep schema :
– Default
– Function
– Procedures
– Queues
– Rules
– Synonyms
– Table
– Types
– User-defined aggregates
– Views
– XML Schema collections
Bagaimana cara kerja security level- schema
Berikut akan dicontohkan database adventuresWorks.
Schema padam AW bersifat instruktif jika ingin dilihat bagaimana schema digunakan. Setiap schema memiliki sekumpulan objek yang yang diakses sekelompok user yang sama, pada contoh berikut suatu departemen dalam suatu perusahaan seperti Sales, Production, atau Human Resource. Schema dapat dilihat dengan sys.schemas.
use AdventuresWorks;
Select * From sys.schemas;
Ketika ditambahkan sebuah user, maka kita dapat mengeset skema default untuk user tersebut. Sebagai contoh kita akan membuat user bernama jane dengang schema sales, jane juga akan di set pada role ddladmin.
Create User Jane FOR LOGIN Jane
WIth DEFAULT_SCHEMA = Sales;
Exec sp_addrolemember ‘db_ddladmin’,’jane’;
Setting default schema berarti apapun yang dilakukan jane secara default menggunakan schema ini, jadi semua objek yang dibuat jane akan dimasukkan dalam schema sales, dan semua objek yang dia referensikan akan diasumsikan pada schema sales. Jadi ketika jane membuat sebuah sp seperti berikut :
use adventuresWorks
go
create procedures usp_GetCustomers
As
Select * From Customer
Prosedur baru akan ditempatkan pada schema sales, dan setiap user yang berbeda schema defaultnya dengan Sales akan membutuhkan referensi seperti Sales.uso_GetCustomers. Catat bahwa jane dapat mereferensi tabel customer tanpa secara explixit menambahkan schema, karena sudah merupakan schema defaultnya. Jika tidak schema tidak direferensikan pada saat membuat user, maka secara default masuk schema dbo.
Membuat Schema baru
Untuk membuat schema baru yaitu dengan menggunakan perintah Create Schema, Sebagai contoh untuk membuat schema finance, sebagai berikut :
Create Schema Finance
Pembuatan schema juga bisa dengan menyebut pricipal database secara spesifik misalnya
Create Schema Finance Authorization Jane
Hal ini berati jane juga memiliki schema tersebut dan secara impisit dapat mengakses semua objek database pada schema tersebut. Bagaimanapun juga hal tersebut tidak mengijinkan jane untuk membuat objek pada schema tersebut, karena perintah DDL tercakup pada level database bukan level schema.
Point terakhir mengenai perintah Create Schema dapat disertakan pada perintah Create Table dan Create View untu membuat table dan view pada schema tersebut, jadi schema dapat dibuat dalam satu perintah go. Dalam membuat schema juga dapat menyertakan pernyataan grant, deny dan revoke.

0 komentar :

Posting Komentar