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 kullanlinuxhint 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 379SELECT 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.