GRANT SQL Server

Grant Sql Server



Pada artikel ini, Anda akan memahami cara menggunakan pernyataan GRANT di SQL Server untuk memberikan izin pada prinsipal yang dapat diamankan.

SQL Server Aman dan Utama

Securable mengacu pada sumber daya yang dikontrol oleh sistem otorisasi SQL Server Database Engine. Contohnya adalah tabel database.

Prinsipal mengacu pada entitas apa pun yang memerlukan akses ke sumber daya SQL Server apa pun. Misalnya, pengguna yang meminta izin di atas meja adalah kepala sekolah.







Pernyataan Hibah SQL Server

Berikut ini adalah sintaks dari perintah GRANT di SQL Server:



izin GRANT
ON aman KE utama;

Anda perlu menentukan izin yang ingin Anda berikan kepada kepala sekolah sebagai daftar yang dipisahkan koma.



Kata kunci ON memungkinkan Anda menentukan keamanan tempat izin diterapkan. Terakhir, kata kunci TO memungkinkan Anda menetapkan target utama.





Misalnya, membuat pengguna menggunakan pernyataan CREATE USER tidak menentukan izin untuk pengguna tersebut. Oleh karena itu, penting untuk menggunakan pernyataan GRANT untuk mengatur izin bagi pengguna tersebut.

Mari kita ambil contoh.



Buat Contoh Login

Mari kita mulai dengan membuat contoh login untuk tujuan ilustrasi. Permintaannya adalah seperti yang disediakan di bawah ini:

buat login linuxhint
dengan kata sandi='kata sandi';

Perintah di atas harus membuat pengguna dengan nama pengguna linuxhint dan kata sandi yang ditentukan.

Buat Contoh Database

Kita dapat membuat database tempat pengguna akan tinggal setelah kita menentukan login. Kueri adalah seperti yang ditunjukkan:

jatuhkan basis data jika ada penyelesai;

membuat pemecah basis data;

gunakan penyelesai;

jatuhkan tabel jika ada entri;

buat entri tabel (
id int bukan identitas null(1,
1) kunci utama,
nama_server varchar(50),
server_address varchar(255) bukan nol,
compression_method varchar(100) default 'tidak ada',
size_on_disk mengapung bukan nol,
float size_compressed,
total_records int bukan nol,
tanggal_init
);
memasukkan
ke dalam
ENTRI(nama_server,
alamat server,
metode_kompresi,
size_on_disk,
size_compressed,
catatan_total,
init_date)
nilai-nilai
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

Buat Pengguna untuk Login

Setelah kami membuat database dan tabel, kami dapat membuat pengguna untuk login linuxhint sebagai:

menggunakan penyelesai
buat pengguna linuxhint
untuk login linuxhint;

Login sebagai Pengguna Baru

Selanjutnya, mari kita masuk sebagai pengguna yang baru dibuat. Perintahnya seperti yang ditunjukkan:

setuser 'linuxhint';

Setelah masuk, kita dapat mencoba melihat tabel dengan menjalankan perintah pilih:

pilih * dari entri;

Menjalankan kueri di atas akan mengembalikan kesalahan:

Pesan 229, Level 14, Negara Bagian 5, Baris 379
Izin SELECT ditolak pada objek 'entri', database 'resolver', skema 'dbo'.

Ini karena pengguna linuxhint tidak memiliki izin apa pun pada database, termasuk izin SELECT.

Berikan Izin kepada Pengguna

Kami perlu memberikan izin SELECT untuk memungkinkan pengguna melihat informasi yang disimpan dalam tabel.

Untuk itu, Anda harus masuk dengan akun administratif SQL Server.

Selanjutnya, jalankan kueri sebagai:

berikan pilihan pada entri ke linuxhint;

Setelah dijalankan, login sebagai pengguna linuxhint dan gunakan pernyataan SELECT.

pilih * dari entri;

Dalam hal ini, perintah mengembalikan tabel karena pengguna memiliki izin SELECT

Anda juga dapat memberikan izin lain kepada pengguna, seperti menyisipkan dan menghapus sebagai:

berikan insert, hapus entri ke linuxhint;

dalam hal ini, pengguna linuxhint harus memiliki izin SELECT, INSERT, dan DELETE pada tabel entri.

Kesimpulan

Dalam posting ini, kami menjelajahi penggunaan perintah GRANT di SQL Server. Perintah memungkinkan Anda untuk memberikan izin kepada prinsipal yang diberikan.