יום שני, 8 בדצמבר 2008

Column Permissions

בעיה:
ידוע שניתן לגדיר ב- SQL server הרשאות למשתמשים ברמת השרת \ בסיס נתונים \ אובייקטים.
האם ניתן להגדיר הרשאות ברמת העמודה בטבלה?

פתרון:
ישנם מקרים בהם אנו מנהלי בסיסי הנתונים מעוניינים להגדיר הרשאות ברמת העמודה.

דרך ביצוע:
קליק ימני על הטבלה המיועדת ß properties
בקטגוריית ה- permissions מגדירים למשתמש הספציפי רמת הרשאות select .
לאחר-מכן, תחת ה- column permissions מגדירים את רמת ההרשאות ברמת העמודה.

לדוגמא:
בטבלה CCTable1 המשתמש Pat לא יוכל לראות את עמודת מספר כרטיס האשראי של הלקוח, אלה רק את שם הלקוח.

יש לציין כי במקרה ואנו מגדירים הרשאות ברמת העמודה, המשתמש לא יוכל לבצע שליפה מהטבלה ע"י select * , אלה הוא יצטרך לציין במפורשות את שמות העמודות שהוא מעוניין לראות.

במקרה ובכל זאת יבצע שליפה עם select * המשתמש יקבל את ההודעה:

Msg 230, Level 14, State 1, Line 1
The SELECT permission was denied on the column 'CustID' of the object 'customers", database 'BankDB', schema 'dbo'.

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

בהצלחה !!

אין תגובות: