GRANT של שרת SQL

Grant Sl Srt Sql



במאמר זה תבינו כיצד להשתמש במשפט GRANT ב-SQL Server כדי להעניק הרשאות ל-Securable למנהל.

SQL Server מאובטח ועיקרי

אבטחה מתייחס למשאבים שמערכת ההרשאה של SQL Server Database Engine שולטת בגישה. דוגמה לכך תהיה טבלת מסד נתונים.

מנהל מתייחס לכל ישות הדורשת גישה לכל משאב SQL Server. לדוגמה, משתמש המבקש הרשאות בטבלה הוא מנהל.







הצהרת מענק של SQL Server

הבא מציג את התחביר של הפקודה GRANT ב-SQL Server:



הענק הרשאות
ON ניתן לאבטחה לראשי;

עליך לציין את ההרשאה שברצונך להקצות למנהל כרשימה מופרדת בפסיקים.



מילת המפתח ON מאפשרת לך לציין את אמצעי האבטחה שעליו יחולו ההרשאות. לבסוף, מילת המפתח TO מאפשרת לך להגדיר את עיקר היעד.





לדוגמה, יצירת משתמש באמצעות הצהרת CREATE USER אינה מגדירה את ההרשאות עבור אותו משתמש. לכן, חיוני להשתמש בהצהרת GRANT כדי להגדיר את ההרשאות עבור אותו משתמש.

הבה ניקח דוגמה.



צור דוגמה לכניסה

הבה נתחיל ביצירת התחברות לדוגמה למטרות המחשה. השאילתה היא כמפורט להלן:

צור כניסה ל-Linuxhint
עם סיסמה='סיסמה';

הפקודה למעלה צריכה ליצור משתמש עם שם המשתמש linuxhint והסיסמה שצוינה.

צור מסד נתונים לדוגמה

נוכל ליצור מסד נתונים שבו המשתמש יתגורר לאחר שהגדרנו כניסה. השאילתות הן כמוצג:

שחרר מסד נתונים אם קיים פותר;

ליצור פותר מסד נתונים;

להשתמש בפתרון;

שחרור טבלה אם קיים ערכים;

צור ערכי טבלה (
id int לא זהות null(1,
1) מפתח ראשי,
server_name varchar(50),
server_address varchar(255) לא null,
compression_method varchar(100) ברירת המחדל 'ללא',
size_on_disk float לא null,
size_compressed float,
total_records int לא null,
init_date date
);
לְהַכנִיס
לְתוֹך
ENTRIES(server_name,
כתובת שרת,
שיטת_דחיסה,
size_on_disk,
size_compressed,
סך_רשומות,
init_date)
ערכים
('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');

צור משתמש עבור הכניסה

לאחר שיצרנו את מסד הנתונים והטבלה, נוכל ליצור משתמש עבור ההתחברות של linuxhint בתור:

להשתמש בפתרון
צור Linuxhint למשתמש
לכניסה ל-linuxhint;

התחבר כמשתמש החדש

לאחר מכן, הרשו לנו להיכנס כמשתמש החדש שנוצר. הפקודה היא כפי שמוצג:

setuser 'linuxhint';

לאחר הכניסה, נוכל לנסות להציג את הטבלאות על ידי הפעלת הפקודה select:

בחר * מתוך ערכים;

הפעלת השאילתה למעלה אמורה להחזיר שגיאה:

מס' 229, רמה 14, מדינה 5, קו 379
הרשאת ה-SELECT נדחתה על האובייקט 'כניסות', מסד נתונים 'פותר', סכימה 'dbo'.

הסיבה לכך היא שלמשתמש linuxhint אין הרשאות כלשהן במסד הנתונים, כולל הרשאות SELECT.

הענק הרשאה למשתמש

עלינו להעניק ל-SELECT הרשאות כדי לאפשר למשתמש לצפות במידע המאוחסן בטבלאות.

לשם כך, עליך להתחבר עם חשבון הניהול של SQL Server.

לאחר מכן, הפעל את השאילתה כך:

הענק בחירה בערכים ל- linuxhint;

לאחר הביצוע, התחבר כמשתמש linuxhint והשתמש במשפט SELECT.

בחר * מתוך ערכים;

במקרה זה, הפקודה מחזירה את הטבלה מכיוון שלמשתמש יש הרשאות SELECT

אתה יכול גם להקצות הרשאות אחרות למשתמש, כגון הוספה ומחיקה כ:

לתת הוספה, למחוק ערכים ל- linuxhint;

במקרה זה, למשתמש ה-linuxhint צריכים להיות הרשאות SELECT, INSERT ו-DELETE בטבלת הערכים.

סיכום

בפוסט זה, חקרנו את השימוש בפקודה GRANT ב-SQL Server. הפקודה מאפשרת לך להקצות הרשאות למנהל נתון.