በ SQL ውስጥ ለተጠቃሚዎች እና ለስራዎች መቆጣጠሪያ መቆጣጠሪያዎች

ግዛታቸው በጣም አስፈላጊ ከሆነ የንግድ እና የውጭ ሰዎች ዳይሬክተሮች እና የእነሱን ስልጣን ለመሻገር እየሞከሩ የሽያጭ ዳታዎችን ለመቆጣጠር ለሚፈልጉ የውሂብ ጎታ አስተዳዳሪዎች ዋንጫን ዋንኛ ቁልፍ ነው. ሁሉም ተዛማጅ የመረጃ ቋት አስተዳደር ስርዓቶች እነዚህን ስጋቶች ለመቀነስ የተነደፉ የተወሰኑ መሰረታዊ የደህንነት ስልቶችን ያቀርባሉ. እንደ Oracle እና Microsoft SQL Server ባሉ የላቁ የዝውውር የውሂብ ጎታዎች የተደገፈ ውስብስብ ተጠቃሚ / ሚና አወቃቀር በ Microsoft Access ከሚቀርቡት ቀላል የይለፍ ቃል ጥበቃ ይበልጣል. ይህ ጽሑፍ የተዋቀሩ ጥያቄዎች ቋንቋ (ወይም SQL ) በሚተገብሩ በሁሉም የውሂብ ጎታዎች ላይ በሚታየው የደህንነት ዘዴዎች ላይ ያተኩራል. በአንድ ላይ, የውሂብ መዳረሻ መቆጣጠሪያዎችን የማጠናከር እና የውሂብዎን ደህንነት ለማረጋገጥ እንችላለን.

ተጠቃሚዎች

በአጠቃላይ በሶፍትዌር ላይ የተመሠረቱ የውሂብ ጎታዎች ሁሉም በኮምፒተር ስርዓተ ክወናዎች ውስጥ ከሚጠቀሙት ጋር ተመሳሳይ የሆኑትን የተጠቃሚ ጽንሰ-ድሮች ይደግፋሉ በ Microsoft Windows NT እና Windows 2000 በተጠቃሚዎች / ቡደኖች ተዋረድ ከተገኙ, በ SQL Server እና Oracle የሚደገፉ የተጠቃሚ / ሚና ስብስቦች በጣም ተመሳሳይ ናቸው.

የውሂብ ጎታዎን ለሚጠቀሙበት እያንዳንዱ የውሂብ ጎታ የተጠቃሚ መለያዎች እንዲፈጥሩ በጣም ይመከራል. በተጠቃሚዎች መካከል መለያዎችን ማጋራት ወይም በቀላሉ የውሂብ ጎታዎን ለማግኘት ለሚፈልጉት ለእያንዳንዱ አይነት ተጠቃሚ አንድ የተጠቃሚ መለያ ብቻ መጠቀም ቢችልም ለሁለት ምክንያቶች ይህን ልምድን እጅግ ተስፋ እናቆርጥል. በመጀመሪያ, ግለሰባዊ ተጠያቂነትን ያስቀራል-አንድ ተጠቃሚ በርስዎ የውሂብ ጎታ ላይ ለውጦ (የራሱ $ 5,000 ጭማሪ በመስጠት) በእውነቱ ወደ አንድ የተወሰነ ሰው እንደገና መከታተል አይችሉም. በተጨማሪም, አንድ የተወሰነ አካውንት ከድርጅትዎ ከተወገዱ እና ከውሂብ የመረጃውን የመጠባበቂያ ቅጂ ለማስወገድ የሚፈልጉ ከሆነ, ሁሉም ተጠቃሚዎች በሚተማመኑበት ይለፍ ቃል ለመለወጥ ይገደዳሉ.

የተጠቃሚ መለያዎችን ለመፍጠር የሚረዱ ዘዴዎች ከመሣሪያ ስርዓት ወደ መድረክ ይለያያሉ. ስለዚህ ለትክክለኛ ሂደቱ የእርስዎን DBMS-የተወሰነ ሰነድ ማማከር አለብዎት. Microsoft SQL Server ተጠቃሚዎች የተከማቸበትን የአሰራር ሂደቱን መመርመር አለባቸው. የ Oracle database administrator (አስተዳዳሪዎች) የ CREATE USER ትዕዛዝ ጠቃሚ ሆነው ያገኟቸዋል. እንዲሁም አማራጭ የማረጋገጫ መርሃግብሮችን ለመመርመርም ፈልገው ይሆናል. ለምሳሌ, Microsoft SQL Server በ Windows NT የተቀናጀ ደህንነት መጠቀምን ይደግፋል. በዚህ ዕቅድ ስር ተጠቃሚዎች በዊንዶውስ ኤን (Windows NT) የተጠቃሚ መለያዎች መሰረት የውሂብ ጎታዎቹ ተለይተዋል, እና ተጨማሪ የውሂብ ጎታውን ለመድረስ ተጨማሪ የተጠቃሚ መታወቂያ እና የይለፍ ቃል ለማስገባት አይገደዱም. ይህ አካሄድ በአካባቢያዊ የውሂብ ጎታ አስተዳዳሪዎች ዘንድ በጣም ታዋቂ ስለሆነ የመለያ አስተዳደር ሚዛን ለኔትወርክ አስተዳደሩ ሰራተኞች ጭንቅላትን ይቀንሳል እና ለአንድ የመጨረሻ ተጠቃሚ ቀላልነትን ያመጣል.

ሚና

አነስተኛ ቁጥር ካላቸው ተጠቃሚዎች ጋር በአከባቢ ውስጥ ከሆኑ, የተጠቃሚ ሒሳቦችን መፍጠር እና ፍቃዶችን በቀጥታ ለእነሱ መስጠት ለእነርስዎ አስፈላጊ ነው. ይሁን እንጂ ብዙ ቁጥር ያላቸው ተጠቃሚዎች ካሉዎት የመያዣዎችን እና ተገቢ ፍቃዶችን በሚሰጡት ሸክሞች ላይ ከአቅዎት በላይ ይገደዳሉ. ይህንን ሸክም ለማስታረቅ የዘር ውርጃ የመረጃ ምንጭ የዝምቶችን ሀሳብ ይደግፋል. የውሂብ ጎታ ሚናዎች በተመሳሳይ መልኩ ለ Windows NT ቡድኖች ተመሳሳይ ይሰራሉ. የተጠቃሚ መለያዎች ሚና (ዎች) ላይ ይሰጣቸዋል እና ፍቃዶች በግለሰብ መለያዎች ይልቅ ለጠቅላላ ለጠቅላላ ሚና ይመደባሉ. ለምሳሌ, የ DBA ሚና ልንፈጥር እና የአስተዳደር ሰራተኞቻችንን የተጠቃሚ መለያዎች በዚህ ሚና መጨመር እንችላለን. ይሄንን አንዴ ካደረግን, ለኘሮግራሙ ፈቀድን በመላክ ለሁሉም ለሁሉም (እና ለወደፊቱ) አስተዳዳሪዎች የተወሰነ ፈቃድ መስጠት እንችላለን. በድጋሚ የአፈፃፀም ቅደም ተከተል ከመድረክ ወደ መድረክ ይለያያል. የ MS SQL Server አስተዳዳሪዎች የ «sp_addrole» የተከማቸ አሰራር ስርዓትን መመርመር አለባቸው, Oracle DBA ደግሞ CREATE ROLE አገባብ መጠቀም አለበት.

ፍቃዶችን መስጠት

አሁን ወደ ዳታቤዝዎ ተጠቃሚዎች አክለናል, ፍቃዶችን በማከል የደህንነት ጥንካሬን ማጠናከሪያ ጊዜው ነው. የመጀመሪያው እርምጃ ለተጠቃሚዎቻችን አስፈላጊ የውሂብ ጎታ ፍቃዶችን ለመስጠት ይሆናል. ይህንን በመጠቀም የ SQL GRANT ዓረፍተ ሐሳብን በመጠቀም እናሳካለን.

የመግለጫ አገባብ ይኸውና:

GRANT <ፍቃዶች>
[በ <ሰንጠረዡ>]
ወደ <ተጠቃሚ / ሚና>
[በሰጠው አማራጭ)

አሁን, ይህን መግለጫ መስመር-ወደ-ቁም ቀጥሎ እንመልከት. የመጀመሪያው መስመር, ለ GRANT <ፍቃዶች>, እኛ የሰጠንን የተወሰኑ የሠንጠረዥ ፍቃዶች እንድንለይ ያስችለናል. እነዚህ የሠንጠረዥ ደረጃ ፍቃዶች (እንደ SELECT, INSERT, UPDATE እና DELETE ያሉ) ወይም የውሂብ ጎታ ፍቃዶች (እንደ CREATE TABLE, ALTER DATABASE እና GRANT ያሉ) ሊሆኑ ይችላሉ. በአንድ የጸጋ ፍቃድ ውስጥ ከአንድ በላይ ፈቃድ ሊሰጠው ይችላል, ነገር ግን የሰንጠረዥ ፍቃዶች እና የውሂብ ጎታ ደረጃ ፍቃዶች በአንድ ነጠላ መግለጫ ውስጥ ሊዋሃዱ አይችሉም.

ሁለተኛው መስመር, በ <ቁንጮ>, በደረጃ ሰንጠረዥ ፍቃዶች የተጎዳውን ሰንጠረዥ ለመጥቀስ ጥቅም ላይ ይውላል. የውሂብ ጎታ ደረጃ ፍቃዶችን የምንሰጥ ከሆነ ይህ መስመር ይለቀቃል. ሶስተኛው መስመር ፍቃዶችን እየተሰጠ ያለውን ተጠቃሚ ወይም ሚና ይገልጻል.

በመጨረሻም, አራተኛው መስመር, በተሰጠው አማራጭ, ግዴታ አይደለም. ይህ መስመር በመግለጫ ውስጥ ከተካተተ ተጠቃሚው ለተፈቀዱ ተጠቃሚዎች እነዚህን ተመሳሳይ ፍቃዶች እንዲሰጣቸው ይፈቀድላቸዋል. ፍቃዶች ​​ለአንድ ሚና ሲመደቡ, WITH GRANT OPTION መግለጽ አይቻልም.

ምሳሌዎች

እስቲ ጥቂት ምሳሌዎችን እንመልከት. በመጀመሪያ ሁኔታዎቻችን የደንበኛ መዝገቦችን በማከል እና በማስተዳደር የ 42 ሰዎችን የማስገባት ኦፕሬተሮች ቡድን በቅርብ ጊዜ እንቀጥላለን. በደንበኞች ሰንጠረዥ ላይ መረጃ መድረስ, ይህን መረጃ ማደስ እና አዲስ ሪከቶችን በጠረጴዛው ላይ ማከል. ከውሂብ ጎታ ፈጽሞ መዝገብን ፈጽሞ መሰረዝ አይችሉም. በመጀመሪያ, ለእያንዳንዱ ኦፕሬተር የተጠቃሚ መለያዎችን መፍጠር እና ሁሉንም ለአዲስ ሚና, DataEntry ማከል አለብን. ቀጥሎም የሚከተለው የ SQL ዓረፍተ ነገር ትክክለኛ ፍቃዶችን እንዲሰጣቸው ልንጠቀምበት ይገባል.

ግራንት ይመርጡ, ያስገቡ, ያዘምኑ
በባለቤቶች ላይ
ወደ DataEntry

እና ይሄ በዛ ነው ይሄ ነው! አሁን የውሂብ ጎታ ፍቃዶችን የምንተይበት አንድ ጉዳይ እንመርምር. የዲቢኤ አባላቱ አዳዲስ ሰንጠረዦችን ወደ ዳታቤዝ እንድናክል መፍቀድ እንፈልጋለን. በተጨማሪም, ሌሎች ተጠቃሚዎች ተመሳሳይ ነገር እንዲያደርጉ መፍቀድ እንዲችሉ እንፈልጋለን. የ SQL ዓረፍተ ነገር ይኸውና:

የእርዳታ ካርድ ይፍጠሩ
ወደ DBA
የአጋጣሚ አማራጭ

የ DBA ዎች ይህን ፍቃድ ለሌሎች ተጠቃሚዎች እንዲወሰን ለማድረግ በ "GRANT OPTION" መስመር ውስጥ አካተትን እንደነበር ልብ ይበሉ.

ፍቃዶችን ማስወገድ

አንዴ ፍቃዶችን ከፈቀድን በኋላ, በኋላ ላይ በሌላ ጊዜ ለመሻር አስፈላጊ ነው. ደግነቱ, ቀደም ሲል የተሰጡ ፍቃዶችን ለማስወገድ SQL ከ REVOKE ትዕዛዝ ጋር ይሰጣል. አጻጻፍ ይኸውና:

[ለሽያጭ አማራጭ] <ፈቃዶች> ን ተግብር
በ <ታት> ላይ

የዚህ ትእዛዝ አገባብ ከግድሩን ትዕዛዝ ጋር ተመሳሳይ መሆኑን ያስተውላሉ. ብቸኛው ልዩነት በ GRANT OPTION በኩል ትዕዛዙ መጨረሻ ላይ ሳይሆን በ REVOKE ትዕዛዝ መስመር ውስጥ ተለይቷል. እንደ ምሳሌ, ማርያም የደንበኞች የውሂብ ጎታ መዝገብን እንዲያስወግድ ከዚህ በፊት የተፈቀደውን ፈቃድ መሻር እንፈልጋለን እንበል. የሚከተለው ትዕዛዝ እንጠቀም ነበር:

ማጥፊያውን አቁሙ
በባለቤቶች ላይ
ከሜሪ

እና ይሄ በዛ ነው ይሄ ነው! በ Microsoft SQL Server የሚደገፍ አንድ ተጨማሪ ስልት አለ-ይህም የ DENY ትዕዛዝ ነው. ይህ ትዕዛዝ አሁን ባለው ወይም ወደፊት በሚወከል የአባልነት አባል በኩል ሊኖራቸው ለሚችለው ተጠቃሚ ፍቃድ በግልጽ ለመከልከል ጥቅም ላይ ሊውል ይችላል. አጻጻፍ ይኸውና:

DENY <ፍቃዶች>
በ <ታት> ላይ
ለ <ተጠቃሚ / ሚና

ምሳሌዎች

ወደ ቀደመው ምሳሌችን በመመለስ ማሪያም የደንበኞች ጠረጴዛን የማስተዳደር አባልም እንደነበረች እናስብ. የቀድሞው የ REVOKE ዓረፍተ ሐሳብ የእሱን ጠረጴዛን ለመከልከል በቂ አልሆነችም. ተጠቃሚዋ ዒላማ ያደረገችውን ​​የ GRANT መግለጫን ያስወግደዋል, ነገር ግን በአስተዳዳሪው አባልነት ባገኘችው ፈቃድ ላይ ተጽዕኖ አይፈጥርም. ሆኖም ግን, የ DENY ዓረፍተ ነገርን ከተጠቀምን, የእርሷን ውርሻ ውድቅ ያደርገዋል. ትዕዛዝ ይኸውና:

DENY DELETE
በባለቤቶች ላይ
ወደ ማርያም

የ DENY ትእዛዝ በመረጃ ቋት መቆጣጠሪያዎች ውስጥ "አሉታዊ ፍቃድ" ይፈጥራል. ማዳም ሾርት ከደንበኞች ሰንጠረዥ ውስጥ ረድፎችን ለማስወገድ ፍቃድ ለመስጠት ከወሰድን, የ GRANT ትዕዛዝን በቀላሉ መጠቀም አንችልም. ይህ ትዕዛዝ በአዲሱ DENY ተሻሽሎ ይፀድቃል. ይልቁንም, በመጀመሪያ የአማራጭ የፍቃድ ግቤትን ለማስወገድ የ REVOKE ትዕዛዞችን እንጠቀማለን.

ማጥፊያውን አቁሙ
በባለቤቶች ላይ
ከሜሪ

ይህ ትእዛዝ በአዎንታዊ መልኩ ለማስወገድ ጥቅም ላይ እንደዋለ አስተውለናል. የ DENY እና GRANT ትዕዛዞች በተመሳሳይ መልኩ ይሰራሉ ​​* mdash; ሁለቱም በመረጃ ቋት መቆጣጠሪያ ዘዴ (ፍቃዶች ወይም አወንታዊ) ፍቃዶችን ይፈጥራሉ. የ REVOKE ትዕዛዝ ለተጠቀሰው ተጠቃሚ ሁሉንም አዎንታዊ እና አሉታዊ ፍቃዶችን ያስወግዳል. አንዴ ትዕዛዝ ከተሰጠ በኋላ, ሜሪው ይህን ፈቃድ የያዘው አባል ከሆነች ከሰንጠረዡ ረድፎችን መሰረዝ ትችላለች. በአማራጭ, የ DELETE ፍቃድ በቀጥታ ወደ መለያዋ ለማቅረብ የ GRANT ትዕዛዝ ሊሰጥ ይችላል.

በዚህ ጽሑፍ ዘለል ውስጥ በመደበኛ የመጠይቅ ቋንቋ ስለተደገፉ የመቆጣጠሪያ መቆጣጠሪያዎች ጥሩ ቅልብ ተገንዝበዋል. ይህ መግቢያ ጥሩ የመነሻ ነጥብ ሊሰጥዎት ይገባል, ነገር ግን በስርዓትዎ የተደገፉ የላቁ የደህንነት እርምጃዎች ለመከታተል የዲኤምኤስ ሰነድዎን እንዲያመላክዎ አበረታታለሁ. ብዙ የውሂብ ጎታዎች በተወሰኑ አምዶች ላይ እንደ ፍቃዶችን እንደ መስጠት የመሳሰሉ የላቁ የመቆጣጠሪያ መቆጣጠሪያዎችን ይደግፋሉ.