Melanjutkan bahasan mengenai New Permission di SQL Server 2014, pada blog sebelumnya saya ada membahas mengenai Connect any database Permission, mari kita lanjutkan untuk membahas SELECT ALL USER SECURABLES Permission. untuk membahas ini, blog sebelumnya harus sudah dipahami terlebih dahulu.
Sebelumnya kita buat dulu 1 buah database baru yaitu TesTDE2 dan 1 buah table Customers.
USE master GO CREATE DATABASE TesTDE2 GO USE TesTDE2 GO CREATE TABLE [dbo].[Customers]( [Id] [int] NOT NULL, [Name] [nvarchar](50) NULL, [Address] [nvarchar](150) NULL, CONSTRAINT [PK_Customers] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO INSERT Customers (Id,Name,Address) Values(1,'Ramayana','Depok') go
Setelah itu kita coba masuk ke database TesTDE2 dengan menggunakan login Safira, dan tampak tanpa harus mengatur permission lagi untuk login Safira, login tersebut langsung dapat mengakses database TesTDE2.
Namun tetap kita tidak bias mengakses table Customers yang ada di dalam database TesTDE2. mari kita coba gabungkan permission CONNECT ANY DATABASE ini dengan SELECT ALL USER SECURABLES permission.
SELECT ALL USER SECURABLES permission memungkinkan sebuah user untuk dapat melihat seluruh data yang diseluruh database yang ada pada sebuah SQL Server Instance.
untuk menambahkan permission ini ke login Safira, kita coba buka properties untuk login Safira dan berikan grant untuk SELECT ALL USER SECURABLES permission seperti pada gambar ini :
Setelah permission diberikan ke login Safira, kita coba lakukan memanggil data table Customers dan ternyata berhasil.
Namun saat saya coba mendelete table customers tersebut didapati error.
Jadi dengan menggunakan SELECT ALL USER SECURABLES permission, maka sebuah login dapat melakukan pembacaan data dari semua database yang ada di sebuah instance tanpa perlu lagi seorang administrator memberikan grant terhadap masing2 login.
Demikian semoga bermanfaat.