PostgreSQL הענק את כל ההרשאות בסכימה למשתמש

Postgresql H Nq T Kl Hhrs Wt Bskymh Lmstms



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

בדרך זו, אתה משיג שליטה על מי יכול לגשת למסד נתונים ואילו הרשאות יש להם אם הם יכולים לגשת למסד הנתונים. לדוגמה, אתה יכול לבטל את השינוי במסד הנתונים או להעניק את כל ההרשאות בסכימה למשתמש או למשתמשים בטבלה נתונה. מדריך זה מפרט כיצד להשתמש ב-PostgreSQL כדי להעניק למשתמש את כל ההרשאות בסכימה למשתמש.







כיצד להעניק הרשאות למשתמשים ב-PostgreSQL

כאשר אתה יוצר תפקיד חדש, הם מקבלים כמה הרשאות כברירת מחדל. עם זאת, רוב ההרשאות מחייבות את מנהל המערכת להעניק אותן למשתמשים שונים כדי להסדיר את הגישה והשליטה בסכימה. אתה יכול להעניק את כל ההרשאות בבת אחת או בנפרד.



עבור הדרכה זו, בואו ניצור חדש תַפְקִיד בשם linuxhint1 .



$ סודו -iu postgres
# צור תפקיד linuxhint1 סיסמת הכניסה 'linuxhint';


שימו לב שאנחנו מחוברים בתור postgres, תפקיד ברירת המחדל שנוצר לאחר התקנת PostgreSQL.






עם התפקיד (המשתמש) שנוצר, נוכל לרשום את התפקידים הזמינים באמצעות הפקודה הבאה:

# \ מ


התפקידים הזמינים יוצגו בפורמט טבלה.




Postgres הוא תפקיד ברירת המחדל ויש לו את רוב ההרשאות שכבר הוענקו. עם זאת, התפקיד החדש, linuxhint1, אין לו הרשאות עד שנעניק זאת.

1. הענקת הרשאה ספציפית למשתמש

התפקיד שנוצר לא יכול לשנות את הסכימה אלא אם כן אתה מתיר זאת. בואו נוודא זאת על ידי יצירת תחילה טבלה כתפקיד ברירת המחדל, postgres.

# ליצור שמות טבלאות ( m_id int נוצר תמיד כפי ש זהות, fname vachar ( 100 ) לא ריק, שם varchar ( 100 ) לא null, age int ) ;



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


לאחר מכן, פתח מעטפת חדשה והיכנס ל-PostgreSQL באמצעות התפקיד האחר, linuxhint1, שיצרנו קודם לכן באמצעות הפקודה הבאה:

$ psql -IN linuxhint1 postgres



ה מציין שהתפקיד הוא להשתמש במסד הנתונים Postgres.

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

# בחר * משמות;


זה מחזיר א ההרשאה נדחתה שגיאה שמפריעה למשתמש לגשת לטבלה.


במקרה כזה, עלינו להעניק את הרשאות התפקיד לבחירה/הצגה של נתונים מהטבלה הנתונה באמצעות התחביר הבא:

# GRANT privilege_name ON table_name TO role_name;


כדי להעניק את ההרשאות, השתמש בהפעלה של Postgres.


לאחר ההענקה, נסה להפעיל מחדש את הפקודה הקודמת.


זהו זה. הצלחת להעניק את הרשאת הבחירה למשתמש הספציפי.

2. הענקת כל ההרשאות בסכימה למשתמש

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

ישנן דרכים שונות להשיג זאת. ראשית, בואו להעניק למשתמש את כל ההרשאות לטבלה נתונה באמצעות התחביר הבא:

# הענק הכל על table_name TO role_name;



המשתמש יכול ליצור אינטראקציה עם הטבלה הספציפית ולשנות אותה. עם זאת, הם לא יכולים לעבוד עם טבלאות אחרות בסכימה.

ל להעניק את כל ההרשאות בכל הטבלאות בסכימה מסוימת , השתמש בתחביר הבא:

# הענק הכל על כל הטבלאות ב-SCHEMA schema_name TO role_name;



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

# GRANT privilege_name על כל הטבלאות ב-SCHEMA schema_name TO role_name;



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

סיכום

PostgreSQL הוא DBMS רב עוצמה. יש לו תכונות שונות, כולל לאפשר למנהל המערכת להעניק הרשאות שונות למשתמשים. הענקת כל ההרשאות בסכימה למשתמשים פירושה לאפשר למשתמש לשנות ולקיים אינטראקציה עם כל הטבלאות בסכימה שצוינה. ראינו כיצד ליישם את זה ודרכים אחרות להענקת הרשאות על הסכימה לתפקידים באמצעות הצהרת GRANT ב-PostgreSQL.