GERAN Pelayan SQL

Geran Pelayan Sql



Dalam artikel ini, anda akan memahami cara menggunakan penyata GRANT dalam SQL Server untuk memberikan kebenaran pada securable kepada prinsipal.

SQL Server Securable dan Prinsipal

Boleh selamat merujuk kepada sumber yang sistem kebenaran Enjin Pangkalan Data SQL Server mengawal akses. Contohnya ialah jadual pangkalan data.

Prinsipal merujuk kepada mana-mana entiti yang memerlukan akses kepada mana-mana sumber SQL Server. Sebagai contoh, pengguna yang meminta kebenaran di atas meja ialah pengetua.







Penyata Geran Pelayan SQL

Berikut menunjukkan sintaks arahan GRANT dalam SQL Server:



BERI kebenaran
ON boleh selamat KE utama;

Anda perlu menentukan kebenaran yang ingin anda berikan kepada pengetua sebagai senarai yang dipisahkan koma.



Kata kunci ON membolehkan anda menentukan yang boleh selamat yang digunakan untuk kebenaran. Akhir sekali, kata kunci TO membolehkan anda menetapkan prinsipal sasaran.





Sebagai contoh, mencipta pengguna menggunakan pernyataan CREATE USER tidak mentakrifkan kebenaran untuk pengguna tersebut. Oleh itu, adalah penting untuk menggunakan pernyataan GRANT untuk menetapkan kebenaran untuk pengguna tersebut.

Mari kita ambil contoh.



Buat Contoh Log Masuk

Mari kita mulakan dengan mencipta contoh log masuk untuk tujuan ilustrasi. Pertanyaan adalah seperti yang disediakan di bawah:

buat log masuk linuxhint
dengan kata laluan='kata laluan';

Perintah di atas harus mencipta pengguna dengan nama pengguna linuxhint dan kata laluan yang ditentukan.

Cipta Pangkalan Data Contoh

Kami boleh mencipta pangkalan data di mana pengguna akan tinggal setelah kami menentukan log masuk. Pertanyaan adalah seperti yang ditunjukkan:

lepaskan pangkalan data jika wujud penyelesai;

buat penyelesai pangkalan data;

gunakan penyelesai;

jatuhkan jadual jika ada entri;

buat entri jadual(
id int bukan identiti null(1,
1) kunci utama,
nama_pelayan varchar(50),
alamat_pelayan varchar(255) bukan nol,
kaedah_mampatan varchar(100) lalai 'tiada',
size_on_disk float bukan nol,
size_compressed float,
total_records int bukan null,
tarikh tarikh_init
);
masukkan
ke dalam
ENTRIES(nama_pelayan,
alamat_pelayan,
kaedah_mampatan,
saiz_pada_cakera,
saiz_mampat,
jumlah_rekod,
tarikh_init)
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 Log Masuk

Sebaik sahaja kami telah mencipta pangkalan data dan jadual, kami boleh mencipta pengguna untuk log masuk linuxhint sebagai:

gunakan penyelesai
buat linuxhint pengguna
untuk log masuk linuxhint;

Log masuk sebagai Pengguna Baharu

Seterusnya, mari kita log masuk sebagai pengguna yang baru dibuat. Perintahnya adalah seperti yang ditunjukkan:

setuser 'linuxhint';

Setelah log masuk, kami boleh cuba melihat jadual dengan menjalankan arahan pilih:

pilih * daripada entri;

Menjalankan pertanyaan di atas harus mengembalikan ralat:

Msg 229, Aras 14, Negeri 5, Baris 379
Kebenaran SELECT telah dinafikan pada 'entri' objek, 'penyelesai' pangkalan data, skema 'dbo'.

Ini kerana pengguna linuxhint tidak mempunyai sebarang kebenaran pada pangkalan data, termasuk keizinan SELECT.

Berikan Kebenaran kepada Pengguna

Kami perlu memberikan kebenaran SELECT untuk membenarkan pengguna melihat maklumat yang disimpan dalam jadual.

Untuk itu, anda perlu log masuk dengan akaun pentadbiran SQL Server.

Seterusnya, jalankan pertanyaan sebagai:

geran pilih pada entri ke linuxhint;

Setelah dilaksanakan, log masuk sebagai pengguna linuxhint dan gunakan pernyataan SELECT.

pilih * daripada entri;

Dalam kes ini, arahan mengembalikan jadual kerana pengguna mempunyai keizinan SELECT

Anda juga boleh memberikan kebenaran lain kepada pengguna, seperti memasukkan dan memadam sebagai:

geran sisipan, padam pada entri ke linuxhint;

dalam kes ini, pengguna linuxhint harus mempunyai keizinan SELECT, INSERT, dan DELETE pada jadual entri.

Kesimpulan

Dalam siaran ini, kami meneroka penggunaan arahan GRANT dalam SQL Server. Perintah tersebut membolehkan anda memberikan kebenaran kepada pengetua yang diberikan.