SQL Sunucusu HİBE

Sql Sunucusu Hibe



Bu makalede, SQL Server'da GRANT deyiminin bir sorumluya güvenli bir dosya üzerinde izinler vermek için nasıl kullanılacağını anlayacaksınız.

SQL Server Güvenli ve Temel

Güvenli, SQL Server Database Engine yetkilendirme sisteminin erişimi kontrol ettiği kaynakları ifade eder. Bir örnek, bir veritabanı tablosu olacaktır.

Bir sorumlu, herhangi bir SQL Server kaynağına erişim gerektiren herhangi bir varlığı ifade eder. Örneğin, bir tablo üzerinde izin talep eden bir kullanıcı bir asildir.







SQL Server Hibe Beyanı

Aşağıda, SQL Server'da GRANT komutunun sözdizimi gösterilmektedir:



HİBE izinleri
ON anaya güvenli;

Sorumluya atamak istediğiniz izni virgülle ayrılmış bir liste olarak belirtmeniz gerekir.



ON anahtar sözcüğü, izinlerin uygulanacağı güvenli hale getirilebilir öğeyi belirtmenize olanak tanır. Son olarak, TO anahtar sözcüğü, hedef sorumluyu belirlemenizi sağlar.





Örneğin, CREATE USER deyimini kullanarak bir kullanıcı oluşturmak, o kullanıcı için izinleri tanımlamaz. Bu nedenle, söz konusu kullanıcının izinlerini ayarlamak için GRANT deyimini kullanmak esastır.

Bir örnek ele alalım.



Örnek Giriş Oluştur

Örnek olması amacıyla örnek bir giriş oluşturarak başlayalım. Sorgu aşağıda verildiği gibidir:

oturum açma linuxhint oluştur
şifre ile='şifre';

Yukarıdaki komut, linuxhint kullanıcı adına ve belirtilen parolaya sahip bir kullanıcı oluşturmalıdır.

Örnek Veritabanı Oluşturun

Bir login tanımladıktan sonra kullanıcının kalacağı bir veritabanı oluşturabiliriz. Sorgular gösterildiği gibidir:

çözümleyici varsa veritabanını bırakın;

veritabanı çözümleyici oluşturmak;

çözümleyici kullanın;

girişler varsa tabloyu bırak;

tablo girişleri oluştur (
id int null değil kimlik(1,
1) birincil anahtar,
sunucu_adı varchar(50),
sunucu_adresi varchar(255) boş değil,
sıkıştırma_yöntemi varchar(100) varsayılan 'yok',
size_on_disk kayan noktası boş değil,
size_sıkıştırılmış şamandıra,
total_records int boş değil,
başlangıç_tarihi tarihi
);
sokmak
içine
GİRİŞLER(sunucu_adı,
sunucu adresi,
sıkıştırma yöntemi,
diskteki boyut,
boyut_sıkıştırılmış,
toplam kayıtlar,
başlangıç_tarihi)
değerler
('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');

Oturum Açmak için Kullanıcı Oluşturun

Veritabanını ve tabloyu oluşturduktan sonra, linuxhint girişi için şu şekilde bir kullanıcı oluşturabiliriz:

çözümleyici kullan
linuxhint kullanıcısı oluştur
linuxhint girişi için;

Yeni Kullanıcı Olarak Giriş Yapın

Ardından, yeni oluşturulan kullanıcı olarak oturum açalım. Komut gösterildiği gibidir:

setuser 'linuxhint';

Oturum açtıktan sonra, select komutunu çalıştırarak tabloları görüntülemeyi deneyebiliriz:

girişlerden * seçin;

Yukarıdaki sorguyu çalıştırmak bir hata döndürmelidir:

Mesaj 229, Seviye 14, Durum 5, Satır 379
SELECT izni, 'girişler' nesnesi, veritabanı 'çözümleyici', 'dbo' şeması üzerinde reddedildi.

Bunun nedeni, linuxhint kullanıcısının veritabanı üzerinde SELECT izinleri dahil olmak üzere herhangi bir izninin olmamasıdır.

Kullanıcıya İzin Verin

Kullanıcının tablolarda depolanan bilgileri görüntülemesine izin vermek için SELECT izinlerini vermemiz gerekir.

Bunun için SQL Server yönetici hesabıyla oturum açmanız gerekir.

Ardından, sorguyu şu şekilde çalıştırın:

linuxhint girişlerinde seçme hakkı verin;

Yürütüldükten sonra, linuxhint kullanıcısı olarak oturum açın ve SELECT deyimini kullanın.

girişlerden * seçin;

Bu durumda komut, kullanıcı SELECT izinlerine sahip olduğundan tabloyu döndürür.

Kullanıcıya aşağıdaki gibi ekleme ve silme gibi başka izinler de atayabilirsiniz:

linuxhint girişlerinde ekleme, silme izni verin;

bu durumda, linuxhint kullanıcısının girişler tablosunda SELECT, INSERT ve DELETE izinlerine sahip olması gerekir.

Çözüm

Bu gönderide, SQL Server'da GRANT komutunun kullanımını inceledik. Komut, belirli bir sorumluya izin atamanıza izin verir.