כַּדֵּי לְהָשִׁיג אֶת הַמַּטָּרָה שֶׁלָּנוכָּל הַדֵּעוֹת וְהַחֲזוֹנוֹת שֶׁיּוּצְגוּ בַּבלוג שֶׁלְּנובְּאַופַן בַּלְעָדִישֶׁל הַמְּחַבֵּר וְלֹא בְּהַכרח לַמְּעַסֵד שֶׁל הַמְּחַבֵּר או לְכָל קְבוּצָה או לְאָדָם אַחֵר. מַאֲמַר זֶה אינו קידום לפלטפורמה לניהול עננים/נתונים כלשהי. כל הַתמונוֹת וּרכיבי הקוד זמינים לציבור באתר של Azure/Databricksכְּללזה כתבה אֲשֶׁר תִּסְפֹּק אֶת הַתַּסְבֵּי עַל כֵּיצַד לַהֲפֵעַיל אֶת נְיהוּל הִרְשָׁאוֹת בְּרמת סְכֶמַת Unity Catalog.
בַּמַּאֲמָר הַזֶּה, אָנִי אֶעֱמוֹד עַל הַתַּסְבֵּיר לַאֲפֵשָׁר נְיהוּל הַהִרְשָׁאוֹת בְּרמַת סְכֶמַת Unity Catalog
הַהַרְשָׁאוֹת בְּרמַת סְכֶמַת Unity Catalog מְאַפְשֵׁרוֹת לַמְּשִׁתַּמְשׁ לַחֲלוֹק הַהַרְשָׁאוֹת בַּכְּלָל בַּהִירַרְכִּיָה, וְהָאוֹבְיֵקט(ִים) הַיְלָדִים יִירְשׁוּ אֶת אותו הַהַרְשָׁאוֹת בְּאוֹפֶן אוֹטוֹמָטִי. לְכֵן, אִם הַהִרְשָׁאוֹת נִכְנְסוֹת בְּרמת הַסְכֶמַת הַסְכֶמָה, הֵן יִתְּנוּ בְּאוֹפֶן אוֹטוֹמָטִי לְכָל הַטַּבְלּוֹת, הַנּוֹתָרוֹת, הַנְּפָחִים וְהַפּוּנְקציוֹת בְּתוֹך הַסְכֶמָה זוֹ
בְּUnity Catalog (Databricks), הַהִרְשָׁאוֹת בְּרמַת הַסְכֶמָה נִכְנְסוֹת כְּאָשֶׁר אַתָּה רוֹצֶה לִשְׁלֹט בַּגִּישָׁה לְסֶט שֶׁל טַבְלוֹת וְנוֹתָרוֹת בְּתוֹך סְכֶמַת סְכֶמָה מְסוֹצֶנֶת. הַהִרְשָׁאוֹת בְּרמת הַסְכֶמָה נִכְנְסוֹת בְּדִרך כְּלָלִית בַּתְּרֵיהֶן הַבְּדִרְכִים הַבָּאוֹת:
לַמְעַנֵת גִּישָׁה לַקּוּמוֹת שֶל עֲצָמוֹת: אִם אַתָּה רוֹצֶה לִנְהוֹל הִרְשָׁאוֹת לְטַבְלוֹת רַבּוֹת וְנוֹתָרוֹת בַּצוּרָה מְאָפֶקֶת, זֶה יְעִיל לַיַישֵׁם הִרְשָׁאוֹת בְּרמת סְכֶמַת הַסְכֶמָה בְּמָקוֹם לְכָל טָבֶלֶת או נוֹתֶרֶת בְּנִפְרָד. זֶה מַאפשִׁר לְך לִשְׁלֹט בְּגִּישָׁה לְכָל הָעֲצָמוֹת שֶׁבְּתוֹך הַסְכֶמָה זוֹ בְּאופן חֲדֵ עִים
- שליטה ארגונית: כאשר צוותים או מחלקות שונות בתוך הארגון זקוקים לגישה לאוספי נתונים מסוימים, המאוחסנים תחת מבנה סכימה נפרד. ביצוע הרשאות ברמת הסכימה מאפשר לך להעניק או להגביל גישה לכל האובייקטים הרלוונטיים לצוות בתוך הסכימה הזו.
- ניהול הרשאות עקבי: בסביבות בהן ניתן להוסיף באופן תדיר אובייקטים חדשים (טבלאות/תצוגות) לתוך סכימה, הגדרת הרשאות ברמת הסכימה מבטיחה שאובייקטים חדשים יירשו את הרשאות המועברות באופן אוטומטי, מהפכת את צורך בעדכון הרשאות ידנית.
- שמירה על אבטחת הנתונים: כאשר ברצונך לאכוף בקרה על גישה לקטגוריית נתונים מסוימת (לדוגמה, נתוני פיננסים, נתוני משאבי אנוש) שמאורגנת באופן הגיוני תחת סכימה. על ידי הגדרת הרשאות ברמת הסכימה, אתה שומר על אבטחת הנתונים תוך פשטות הניהול.
סקריפט אוטומציה
הקדמה
- קטלוג Unity כבר הוגדר.
- העקרונות קשורים לסביבת עבודה Databricks.
- המשתמש שמפעיל את סקריפט ההרשאות מחזיק הרשאות מתאימות על הסכימה והקטלוג.
שלב 1: יצירת פתק והגדרת המשתנים
יצירת פתק בסביבת עבודה של Databricks. כדי ליצור פתק בסביבת העבודה שלך, לחץ על "+" חדש בסרגל הצד, ולאחר מכן בחר פתק.
העתק והדבק את קטע הקוד לתוך תא הפתק והרץ את התא.
catalog = 'main' # Specify your catalog name
schema = 'default' # Specify your schema name
principals_arr = '' # Specify the Comma(,) seperated values for principals in the blank text section (e.g. groups, username)
principals = principals_arr.split(',')
privileges_arr = 'SELECT,APPLY TAG' # Specify the Comma(,) seperated values for priviledges in the blank text section (e.g. SELECT,APPLY TAG)
privileges = privileges_arr.split(',')
שלב 2: הגדר את הקטלוג ואת הסכמה
העתק, הדבק והרץ את בלוק הקוד למטה בתא חדש או קיים והרץ את התא.
query = f"USE CATALOG `{catalog}`" #Sets the Catalog
spark.sql(query)
שלב 3: עבור דרך העקרונות וההרשאות והחל מתן הרשאה בקטלוג ובסכמה
העתק, הדבק והרץ את בלוק הקוד למטה בתא חדש או קיים, ואז הרץ את התא כדי להחיל את ההרשאות.
for principal in principals:
query = f"GRANT USE_CATALOG ON CATALOG `{catalog}` TO `{principal}`" # Apply use catalog permission at Catalog level
spark.sql(query)
query = f"USE SCHEMA `{schema}`" # Sets the schema
spark.sql(query)
query = f"GRANT USE_SCHEMA ON SCHEMA `{schema}` TO `{principal}`" # Apply use schema permission at Schema level
spark.sql(query)
for privilege in privileges:
query = f"GRANT `{privilege}` ON SCHEMA `{schema}` TO `{principal}`" # Use schema permission at Schema level
spark.sql(query)
אימות
ניתן לאמת את ההרשאות על ידי פתיחת ממשק המשתמש של Databricks וניווט אל הקטלוג במגהן הנתונים. כאשר הקטלוג מוצג בחלק הנתונים, לחץ על הקטלוג, ואז בחר בסכמה שבה הוחלו ההרשאות ועבור ללשונית הרשאות. ניתן כעת לראות את כל ההרשאות שהוחלו על הסכמה.
ניתן גם להריץ את סקריפט ה-SQL למטה במחברת כדי להציג את כל ההרשאות עבור סכמה כחלק מהאימות שלך.
SHOW GRANTS ON SCHEMA my_schema;
מסקנה
אוטומציה של ניהול ההרשאות ב-Databricks Unity Catalog ברמת הסכמה עוזרת להבטיח שליטה על גישה עקבית ויעילה עבור קבוצת העצמים (למשל: טבלאות, תצוגות, פונקציות ונפחים) בקטלוג. הקוד המסופק מדגים דרך מעשית להקצות הרשאות ברמת סכמה, ובכך להקל על ניהול ההרשאות על ידי עקרונות (למשל: משתמשים וקבוצות). הגישה הזו מפחיתה את המשימות המנהליות ואת הסיכוי לשגיאות ידניות על ידי קיבוץ טבלאות ותצוגות בתוך סכמה והחלת הרשאות עקביות עבור כל הסכמה.
Source:
https://dzone.com/articles/automate-databricks-unity-catalog-permissions-at-schema-level