You are on page 1of 9

‫اﻟﻔﺼﻞ اﻟﺜﺎﻟﺚ ﻋﺸﺮ‬

‫‪Controlling User Access‬‬


‫اﻟﺘﺤﻜﻢ ﻓﻲ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬
‫اﻻهﺪاف‪:‬‬

‫إﻧﺸﺎء ﻣﺴﺘﺨﺪﻣﻴﻦ)‪. (Users‬‬ ‫•‬


‫إﻧﺸﺎء ‪ Roll‬ﺑﻤﻌﻨﻰ اﻧﺸﺎء ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺼﻼﺣﻴﺎت‪.‬‬ ‫•‬
‫اﺳﺘﺨﺪام اﻷﻣﺮ ‪ GRANT‬آﻲ ﺗﻤﻨﺢ ﺑﻌﺾ اﻟﺼﻼﺣﻴﺎت )‪(Privileges‬و اﻷﻣﺮ‬ ‫•‬
‫‪ REVOKE‬آﻰ ﻳﺘﻢ ﺳﺤﺐ ﺑﻌﺾ اﻟﺼﻼﺣﻴﺎت ﻣﻦ ﻣﺴﺘﺨﺪم ﻣﻌﻴﻦ‪.‬‬
‫إﻧﺸﺎء رواﺑﻂ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬ ‫•‬

‫اﻟﺘﺤﻜﻢ ﻓﻲ ﻣﻌﺎﻣﻼت اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‬

‫إﻧﺸﺎء ﻣﺴﺘﺨﺪم )‪: (User‬‬


‫ﻗﺒﻞ اﻟﺒﺪء ﻓﻲ إﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﻳﺪ ﻳﺠﺐ أوﻻ اﻟﺪﺧﻮل ﻋﻠﻲ ﻣﺴﺘﺨﺪم ﻳﻜﻮن ﻟﺔ‬
‫ﺻﻼﺣﻴﺔ إﻧﺸﺎء ﻣﺴﺘﺨﺪم ‪.‬واﻟﻤﺴﺘﺨﺪم اﻟﺬى ﻟﺔ ﺻﻼﺣﻴﺔ هﻮ )‪. (DBA‬‬
‫وﻹﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﻳﺪ ﺳﻮف ﻧﺴﺘﺨﺪم اﻷﻣﺮ ‪ CREAT_USER‬ﺛﻢ أﺳﻢ اﻟﻤﺴﺘﺨﺪم‬
‫اﻟﻤﺮاد إﻧﺸﺎؤﻩ ﻣﺜﻼ ‪ ، SCOTT‬وﻳﺄﺗﻲ ﺑﻌﺪ ذﻟﻚ ﻓﻘﺮة ‪ IDENTIFIED BY‬واﻟﺘﻲ ﺗﺴﺘﺨﺪم‬
‫ﻓﻲ ﺗﺤﺪﻳﺪ آﻠﻤﺔ اﻟﺴﺮ ﻟﻬﺬا اﻟﻤﺴﺘﺨﺪم ﺛﻢ آﻠﻤﺔ اﻟﺴﺮ اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم اﻟﺠﺪﻳﺪ‬
‫)ﻣﺜﻼ ‪.( TIGER‬‬

‫‪Database Security‬‬
‫‪:System Security .1‬‬
‫ﻳﻐﻄﻲ اﻟﻮﺻﻮل واﻻﺳﺘﺨﺪام ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ،‬ﻣﺜﻞ اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ‬
‫اﻟﺴﺮي ‪.‬‬
‫‪: Data Security .2‬‬
‫هﻰ اﻟﺘﻰ ﻳﺘﻢ ﻓﻴﻬﺎ ﺗﺤﺪﻳﺪ اﻟﺼﻼﺣﻴﺎت ﻻﺳﺘﺨﺪام اﻟﺒﻴﺎﻧﺎت ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫هﻨﺎك اآﺜﺮ ﻣﻦ ‪ 100‬ﺻﻼﺣﻴﺔ )‪. (Privilege‬‬ ‫•‬


‫ﻣﺪﻳﺮ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻳﻜﻮن ﻟﺔ اﻋﻠﻰ ﻣﺴﺘﻮى ﻓﻰ اﻋﻄﺎء اﻟﺼﻼﺣﻴﺎت‬ ‫•‬
‫ﻟﻠﻤﺴﺘﺨﺪم )‪ (User‬ﻣﺜﻞ‪:‬‬
‫‪Removing Users‬‬ ‫‪Creating a New User‬‬
‫‪Backing up tables‬‬ ‫‪Removing Tables‬‬
‫‪Typical DBA Privilege‬‬
‫ﺑﻌﺾ ﺻﻼﺣﻴﺎت ‪DBA‬‬

‫‪System Privilege‬‬ ‫‪Operations‬‬


‫‪CREAT USER‬‬ ‫ﻳﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ إﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﻳﺪ‪.‬‬
‫‪DROP USER‬‬ ‫ﻳﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ ﺣﺬف ﻣﺴﺘﺨﺪم‪.‬‬
‫‪DROP ANY TABLE‬‬ ‫ﻳﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ ﺣﺬف اى ﺟﺪول ﻓﻲ ‪Schema‬‬
‫اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم‪.‬‬
‫‪BACKUP ANY TABLE‬‬ ‫ﻳﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ ﻋﻤﻞ ‪ Backup‬ﻵى ﺟﺪول ﻓﻰ‬
‫‪.Schema‬‬
‫‪SELECT ANY TABLE‬‬ ‫ﻳﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ اﻻﺳﺘﻌﻼم ﻋﻦ ‪ Tables‬او ‪.View‬‬
‫‪CREATE ANY TABLE‬‬ ‫ﻳﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ إﻧﺸﺎء ﺟﺪاول‪.‬‬

‫إﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﻳﺪ‬

‫ذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام اﻷﻣﺮ ‪CREATE USER‬‬

‫ﻓﻔﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺗﻢ اﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﻳﺪ ﺑﺎﺳﻢ ‪ Scott‬واﻟﺮﻗﻢ اﻟﺴﺮى‬


‫اﻟﺨﺎص ﺑﺔ ‪. Tiger‬‬

‫)‪ (DBA‬هﻮ اﻟﻮﺣﻴﺪ اﻟﺬى ﻟﺔ اﻟﺤﻖ ﻓﻰ اﻧﺸﺎء ﻣﺴﺘﺨﺪم ﺟﺪﻳﺪ‪،‬وﺑﻌﺪ اﻧﺸﺎءة ﻟﻠﻤﺴﺘﺨﺪم‬
‫اﻟﺠﺪﻳﺪ ﻳﻘﻮم ﺑﺎﻋﻄﺎءة اﻟﺼﻼﺣﻴﺎت اﻟﻤﻨﺎﺳﺒﺔ ﻟﺔ ﺣﺴﺐ ﻃﺒﻴﻌﺔ ﻋﻤﻠﺔ‪.‬وﺑﻬﺬة اﻟﺼﻼﺣﻴﺎت‬
‫ﻳﺘﻤﻜﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬

‫ﻳﻘﻮم )‪ (DBA‬ﺑﺎﻋﻄﺎء اﻟﺼﻼﺣﻴﺎت اﻻزﻣﺔ ﻟﻜﻞ ﻣﺴﺘﺨﺪم)‪(User‬‬


‫وﻣﻦ هﺬة اﻟﺼﻼﺣﻴﺎت‪:‬‬
‫‪-‬‬ ‫‪Create Session.‬‬
‫‪-‬‬ ‫‪Create Table.‬‬
‫‪-‬‬ ‫‪Create Sequence.‬‬
‫‪-‬‬ ‫‪Create View.‬‬
‫‪-‬‬ ‫‪Create Procedure.‬‬
‫‪System Privilege‬‬ ‫‪Operations‬‬
‫‪CREATE SESSION‬‬ ‫ﺗﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ اﻻﺗﺼﺎل)‪(Connect‬‬
‫ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫‪CREATE TABLE‬‬ ‫ﺗﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ اﻧﺸﺎء ﺟﺪول‪.‬‬
‫‪CREATE SEQUENCE‬‬ ‫ﺗﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ اﻧﺸﺎء ‪. Sequence‬‬
‫‪CREATE VIEW‬‬ ‫ﺗﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ اﻧﺸﺎء ‪.View‬‬
‫‪CREATE PROCEDURE‬‬ ‫ﺗﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ اﻧﺸﺎء ‪.Procedure‬‬
‫اﻟﺼﻴﻐﺔ اﻻﺳﺎﺳﻴﺔ ﻟﺠﻤﻠﺔ ‪: Grant‬‬

‫ﻳﺘﻢ اﻟﺒﺪء ﺑﻔﻘﺮة ‪ grant Privilege‬ﺛﻢ ﻧﻮع اﻟﺼﻼﺣﻴﺔ) ‪ ( Privilege‬ﺛﻢ ﻓﻘﺮة ‪To User‬‬
‫ﺛﻢ اﺳﻢ اﻟﻤﺴﺘﺨﺪم)‪ (User‬او ) ‪ ( Role‬اﻟﺬى ﻳﻌﺒﺮ ﻋﻦ ﻣﻜﺎن ﺑﺔ ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬
‫اﻟﺼﻼﺣﻴﺎت او )‪ (Public‬وﺗﻌﺒﺮ ﻋﻦ اﻋﻄﺎء اﻟﺼﻼﺣﻴﺎت اﻟﻰ آﻞ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪.‬‬

‫ﻣﺜﺎل‪:‬‬

‫اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻗﺎم ﺑﻤﻨﺢ اﻟﺼﻼﺣﻴﺎت اﻟﺴﺎﺑﻘﺔ ﻟﻠﻤﺴﺘﺨﺪم ‪. SCOTT‬‬


‫وﺑﺬﻟﻚ اﺻﺒﺢ اﻟﻤﺴﺘﺨﺪم ‪ SCOTT‬ﻟﺔ ﺻﻼﺣﻴﺔ اﻻﺗﺼﺎل)‪ (Connect‬ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫واﻧﺸﺎء ﺟﺪاول و ‪ Sequence‬و ‪. View‬‬

‫*ﺗﻌﺮﻳﻒ ‪: ROLE‬‬
‫هﻰ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺼﻼﺣﻴﺎت)‪ (Privileges‬اﻟﺘﻰ ﻳﻤﻜﻦ‬
‫ﻣﻨﺤﻬﺎ اﻟﻰ اﻟﻤﺴﺘﺨﺪم‪.‬وﻳﺘﻢ اﺳﺘﺨﺪام ‪ ROLL‬ﻟﺘﺴﻬﻴﻞ ﻋﻤﻠﻴﺔ ﻣﻨﺢ‬
‫اﻟﺼﻼﺣﻴﺎت )‪. (Privileges‬‬

‫*ﻓﻜﺮة ‪: ROLE‬‬
‫اﻟﻬﺪف ﻣﻦ اﻟﺮﺳﻢ اﻟﺴﺎﺑﻖ اﻋﻄﺎء ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺼﻼﺣﻴﺎت ﻟﺒﻌﺾ‬
‫اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪.‬ﻻﺣﻆ ان آﻼ ﻣﻦ اﻟﺮﺳﻤﺘﻴﻦ ﻳﺤﻘﻘﻮا ﻧﻔﺲ اﻟﻬﺪف وﻟﻜﻦ‬
‫ﺑﺎﺳﺘﺨﺪام ‪ ROLL‬ﺗﻜﻮن اﻟﻌﻤﻠﻴﺔ اﺳﻬﻞ وأوﺿﺢ‪.‬‬
‫ﻳﻤﻜﻨﻚ اﻋﺘﺒﺎر ‪ Roll‬ﻣﺜﻼ ﻣﺴﺘﺨﺪم ﻳﺘﻢ اﻋﻄﺎءة ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬
‫اﻟﺼﻼﺣﻴﺎت‬
‫وﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﻋﻄﺎء ﺗﻠﻚ ‪ ROLL‬اﻟﺬى ﻳﺤﺘﻮى ﻋﻠﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ‬
‫اﻟﺼﻼﺣﻴﺎت اﻟﻰ اى ﻣﺴﺘﺨﺪم‪.‬‬
‫ﻓﻔﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻗﻤﻨﺎ ﺑﺎﻧﺸﺎء ‪ ROLL‬واﻋﻄﺎﺋﻬﺎ اﺳﻢ ‪. manager‬‬

‫ﺑﻌﺪ ان ﻗﻤﻨﺎ ﺑﺎﻧﺸﺎء ‪ ROLL‬ﻧﻘﻮم ﺑﺎﻋﻄﺎء اﻟﺼﻼﺣﻴﺎت ﻟﺔ ﻋﻦ ﻃﺮﻳﻖ اﻻﻣﺮ ‪. Grant‬‬

‫ﺑﻌﺪ ان ﻗﻤﻨﺎ ﺑﺎﻧﺸﺎء ‪ ROLL‬واﻋﻄﺎءة اﻟﺼﻼﺣﻴﺎت اﻟﻤﻨﺎﺳﻴﺔ ﻟﺔ ﻧﻘﻮم ﺑﺎﻋﻄﺎء ﺗﻠﻚ ‪ROLL‬‬
‫اﻟﻰ اﻟﻤﺴﺘﺨﺪم‪ ،‬وﺗﻢ اﻋﻄﺎء ‪ ROLL‬اﻟﻰ آﻼ ﻣﻦ ‪ DEHAAN‬و ‪. KOCHHAR‬‬

‫ﻳﻘﻮم )‪ (DBA‬ﺑﺎﻧﺸﺎء ﻣﺴﺘﺨﺪم وﺗﺤﺪﻳﺪ رﻗﻢ ﺳﺮى ﻟﺔ‪.‬‬ ‫‪-‬‬


‫ﺑﻌﺪ ذﻟﻚ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم ﺗﻐﻴﺮ اﻟﺮﻗﻢ اﻟﺴﺮى ﻟﺔ ﺑﺎﺳﺘﺨﺪام اﻻﻣﺮ ‪. Alter User‬‬ ‫‪-‬‬

‫ﻣﺜﺎل‪:‬‬

‫ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻗﺎم اﻟﻤﺴﺘﺨﺪم ‪ Scott‬ﺑﺘﻐﻴﺮ اﻟﺮﻗﻢ اﻟﺴﺮى ﻟﺔ اﻟﻰ ‪. Lion‬‬

‫اﻟﺼﻴﻐﺔ اﻻﺳﺎﺳﻴﺔ ﻟﺘﻐﻴﺮ اﻟﺮﻗﻢ اﻟﺴﺮى‪:‬‬

‫‪ :User‬هﻮ أﺳﻢ اﻟﻤﺴﺘﺨﺪم‪.‬‬


‫‪ :Password‬اﻟﺮﻗﻢ اﻟﺴﺮي اﻟﺠﺪﻳﺪ‪.‬‬

‫‪Object Privilege‬‬

‫‪Object‬‬ ‫‪Table‬‬ ‫‪View‬‬ ‫‪Sequence‬‬ ‫‪Procedure‬‬


‫‪Privilege‬‬
‫‪ALTER‬‬
‫‪DELETE‬‬
‫‪EXECUTE‬‬
‫‪INDEX‬‬
‫‪INSERT‬‬
‫‪REFRENCES‬‬
‫‪SELECT‬‬
‫‪UPDATE‬‬
‫ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ ‪ TABLE‬و ‪. Sequence‬‬ ‫‪Alter‬‬
‫ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ ‪ TABLE‬و ‪. VIEW‬‬ ‫‪Delete‬‬
‫ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ ‪. Procedure‬‬ ‫‪Execute‬‬
‫ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﺔ ﻣﻊ ‪. Table‬‬ ‫‪Index‬‬
‫ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﺔ ﻣﻊ ‪ Table‬و ‪. View‬‬ ‫‪Insert‬‬
‫‪ References‬ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ ‪Table‬و ‪. View‬‬
‫ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ ‪ Table‬و ‪ View‬و ‪. Sequence‬‬ ‫‪Select‬‬
‫ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ ‪ Table‬و ‪. View‬‬ ‫‪:Update‬‬

‫ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم ان ﻳﻌﻄﻰ ﺑﻌﺾ اﻟﺼﻼﺣﻴﺎت اﻟﻰ ﻣﺴﺘﺨﺪم اﺧﺮ ﺑﺸﺮط ان ﻳﻜﻮن‬
‫هﻮ ﺻﺎﺣﺐ ‪. Schema‬‬
‫اﻟﺼﻴﻐﺔ اﻟﺮﺋﻴﺴﻴﺔ ‪: Object Privilege‬‬

‫ﻟﺘﺤﺪﻳﺪ اﻟﺼﻼﺣﻴﺎت‪.‬‬ ‫‪Object_priv‬‬


‫ﺗﻌﻨﻰ اﻋﻄﺎء آﻞ اﻟﺼﻼﺣﻴﺎت‪.‬‬ ‫‪All‬‬
‫ﺗﺤﺪﻳﺪ اﻻﻋﻤﺪة ﻓﻰ ‪ Table‬او ‪ View‬اﻟﺨﺎﺻﺔ ﺑﺎﻟﺼﻼﺣﻴﺎت‪.‬‬ ‫‪Columns‬‬
‫ﻟﺘﺤﺪﻳﺪ ‪. Object‬‬ ‫‪On object‬‬
‫ﻟﺘﺤﺪﻳﺪ ‪ User‬او ‪ Roll‬او ‪ Public‬اﻟﺘﻰ ﺗﻌﻨﻰ ﻣﻨﺢ اﻟﺼﻼﺣﻴﺎت‬ ‫‪To‬‬
‫اﻟﻰ آﻞ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ‪.‬‬
‫‪ With grant option‬ﺗﺴﺘﺨﺪم ﻟﻜﻰ ﻳﺴﺘﻄﻴﻊ اﻟﻤﺴﺘﺨﺪم اﻟﻤﻤﻨﻮح اﻟﺼﻼﺣﻴﺔ ﻣﻨﺢ‬
‫اﻟﺼﻼﺣﻴﺎت اﻟﻤﻤﻨﻮﺣﺔ ﻟﺔ اﻟﻰ ﻣﺴﺘﺨﺪم اﺧﺮ‪.‬‬

‫ﻣﺜﺎل‪:‬‬

‫ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻗﺎم اﻟﻤﺴﺘﺨﺪم ) ‪ ( HR‬ﺑﻤﻨﺢ ﺻﻼﺣﻴﺔ ‪ Select‬اﻟﻰ‬


‫اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ‪ Sue‬و ‪ Rich‬ﻋﻠﻰ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ )اى اﻣﻜﺎﻧﻴﺔ اﻻﺳﺘﻌﻼم‬
‫ﻋﻦ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ(‪.‬‬

‫وﻟﻜﻰ ﻳﺘﻤﻜﻦ آﻼ ﻣﻦ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ‪ Sue‬و ‪ Rich‬اﻻﺳﺘﻌﻼم ﻋﻦ ﺟﺪول‬


‫‪Employees‬‬
‫اﻟﺨﺎص ﺑﺎﻟﻤﺴﺘﺨﺪم ) ‪ ( HR‬ﻻﺑﺪ ﻣﻦ آﺘﺎﺑﺔ اﺳﻢ ﻣﺎﻟﻚ اﻟﺠﺪول ﺛﻢ اﺳﻢ اﻟﺠﺪول‬
‫وﺑﻴﻨﻬﻢ ﻧﻘﻄﺔ آﻤﺎ ﻓﻰ اﻟﻤﺜﺎل اﻟﺘﺎﻟﻰ‪:‬‬
‫ﻓﻠﻨﻔﺘﺮض ان اﻟﻤﺴﺘﺨﺪم ‪ Rich‬ﻳﺮﻳﺪ اﻻﺳﺘﻌﻼم ﻋﻦ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ اﻟﺨﺎص‬
‫ﺑﺎﻟﻤﺴﺘﺨﺪم ‪: HR‬‬
‫;‪Select * from HR.Employees‬‬
‫ﻣﺜﺎل اﺧﺮ‪:‬‬

‫ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻗﺎم اﻟﻤﺴﺘﺨﺪم )‪ ( HR‬ﺑﻤﻨﺢ ﺻﻼﺣﻴﺔ ‪ Update‬ﻓﻰ‬


‫اﻟﻌﻤﻮدﻳﻦ )‪ (Department_id,Location_id‬اﻟﻰ اﻟﻤﺴﺘﺨﺪم ‪SCOTT‬‬
‫و )‪ Roll‬اﻟﺴﺎﺑﻖ اﻧﺸﺎءهﺎ ﺑﺎﺳﻢ ‪.( Manager‬‬

‫ﺗﺴﺘﺨﺪم ﻓﻘﺮة ‪ With GRANT Option‬ﻟﻠﺴﻤﺎح ﻟﻠﻤﺴﺘﺨﺪم ﺑﻤﻨﺢ اﻟﺼﻼﺣﻴﺎت‬


‫اﻟﺨﺎﺻﺔ ﺑﺔ اﻟﻰ ﻣﺴﺘﺨﺪﻣﻴﻦ اﺧﺮﻳﻦ‪.‬‬
‫ﻣﺜﺎل‪:‬‬

‫اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻗﺎم اﻟﻤﺴﺘﺨﺪم ‪ HR‬ﺑﻤﻨﺢ ﺻﻼﺣﻴﺎت ‪ Select‬و‪ Insert‬اﻟﻰ ‪SCOTT‬‬


‫ﻣﻊ اﻣﻜﺎﻧﻴﺔ ﻗﻴﺎم اﻟﻤﺴﺘﺨﺪم ‪ SCOTT‬ﺑﻤﻨﺢ ﺗﻠﻚ اﻟﺼﻼﺣﻴﺎت اﻟﻰ اى ﻣﺴﺘﺨﺪم اﺧﺮ‬
‫ذﻟﻚ ﻻﻧﺔ اﺳﺘﺨﺪم ﻓﻘﺮة ‪.With Check Option‬‬

‫‪Using Public Keyword‬‬

‫ﺗﺴﺘﺨﺪم آﻠﻤﺔ ‪ Public‬ﻟﺘﻌﺒﺮ ﻋﻦ آﻞ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬


‫ﻣﺜﺎل‪:‬‬

‫ﻳﻘﻮم اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺑﺎﻋﻄﺎء ﺻﻼﺣﻴﺔ اﻻﺳﺘﻌﻼم )‪ (Select‬ﻋﻠﻰ ﺟﺪول اﻻﻗﺴﺎم‬


‫اﻟﺨﺎص ﺑﺎﻟﻤﺴﺘﺨﺪم ‪ Alice‬اﻟﻰ آﻞ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ اﻻﺧﺮﻳﻦ‪.‬‬

‫ﺳﺤﺐ اﻟﺼﻼﺣﻴﺎت‬

‫ﻟﺴﺤﺐ اﻟﺼﻼﺣﻴﺎت ﻣﻦ اﻟﻤﺴﺘﺨﺪم ﻳﺴﺘﺨﺪم اﻻﻣﺮ ‪. Revoke‬‬


‫اذا ﻗﻤﺖ ﺑﻤﻨﺢ ﻣﺴﺘﺨﺪم ﺻﻼﺣﻴﺔ ﺑﺎﺳﺘﺨﺪام ﻓﻘﺮة ‪ With Grant Option‬واردت ﺑﻌﺪ‬
‫ذﻟﻚ ﺳﺤﺐ ﺗﻠﻚ اﻟﺼﻼﺣﻴﺔ ﻣﻨﺔ او ﻣﻦ اى ﻣﺴﺘﺨﺪم اﺧﺬ ﺗﻠﻚ اﻟﺼﻼﺣﻴﺔ ﻣﻦ اﻟﻤﺴﺘﺨﺪم‬
‫اﻻول ﻳﺘﻢ اﺿﺎﻓﺔ ﻓﻘﺮة ‪. Cascade Constraint‬‬

‫اﻟﺼﻴﻐﺔ اﻻﺳﺎﺳﻴﺔ ﻟﺠﻤﻠﺔ ‪: Revoke‬‬

‫ﻣﺜﺎل‪:‬‬

‫اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺗﻢ ﺳﺤﺐ آﻼ ﻣﻦ ‪ Select‬و ‪ Insert‬ﻣﻦ ﻋﻠﻰ ﺟﺪول اﻻﻗﺴﺎم ﻣﻦ‬


‫اﻟﻤﺴﺘﺨﺪم ‪. SCOTT‬‬

‫ارﺗﺒﺎط ﻗﺎﻋﺪة اﻟﺒﻴﻨﺎت ﺗﺴﻤﺢ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ اﻟﻤﺤﻠﻴﻴﻦ ﻟﻠﻮﺻﻮل إﻟﻲ ﺑﻴﻨﺎت ﻋﻠﻲ‬
‫ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت اﺧﺮى‪.‬‬

‫• وﺻﻠﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬


‫هﻲ ﻣﺆﺷﺮ آﻲ ﻳﺤﺪد ﻃﺮق اﻻﺗﺼﺎل ﻣﻦ ﺧﺎدم ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت أوراآﻞ إﻟﻲ ﺧﺎدم‬
‫ﻗﺎﻋﺪة ﺑﻴﺎﻧﺎت ﺁﺧﺮ‪.‬‬
‫إن ﻣﺆﺷﺮ اﻟﻮﺻﻠﺔ ﻳﻌﺮف ﻓﻲ اﻟﺤﻘﻴﻘﻴﺔ آﺎﻟﺪﺧﻮل ﻓﻲ ﺟﺪول ﻗﺎﻣﻮس اﻟﺒﻴﺎﻧﺎت‪.‬‬
‫آﻲ ﺗﺪﺧﻞ اﻟﻮﺻﻠﺔ ﻳﺠﺐ أن ﺗﻜﻮن ﻣﺘﺼﻞ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻤﺤﻠﻴﺔ اﻟﺘﻲ ﺗﺤﺘﻮي‬
‫ﻋﻠﻲ ﻗﺎﻣﻮس اﻟﺒﻴﺎﻧﺎت اﻟﻤﺪﺧﻞ‪.‬‬
‫ارﺗﺒﺎط وﺻﻠﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻳﻜﻮن اﺗﺠﺎﻩ واﺣﺪ ﻓﻲ اﻹﺣﺴﺎس اﻟﺬي ﻳﻜﻮن ﻣﺘﺼﻞ‬
‫ﺑﺎﻟﻌﻤﻴﻞ إﻟﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ A‬وﻳﻤﻜﻦ أن ﻳﺴﺘﺨﺪم اﻟﺮﺑﻄﺔ اﻟﻤﺨﺰﻧﺔ ﻓﻲ ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت ‪ A‬آﻲ ﻳﻤﺮر اﻟﻤﻌﻠﻮﻣﺎت وﻳﺘﺤﻜﻢ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ‬
‫‪ ، B‬وﻟﻜﻦ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ اﺗﺼﻠﻮا ﺑﺎﻟﻘﺎﻋﺪة اﻟﺒﻴﻨﺎت ‪ B‬ﺣﻴﺚ ﻻ ﺗﺴﺘﻄﻴﻊ‬
‫اﺳﺘﺨﺪام ﻧﻔﺲ اﻟﺮﺑﻄﺔ آﻲ ﺗﺪﺧﻞ اﻟﺒﻴﺎﻧﺎت ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪. A‬‬
‫إذا اﻟﻤﺴﺘﺨﺪﻣﻴﻦ اﻟﻤﺤﻠﻴﻴﻦ ﻋﻠﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ B‬ﻳﺮﻳﺪون دﺧﻮل اﻟﺒﻴﺎﻧﺎت ﻋﻠﻲ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ ، A‬هﻢ ﻳﺠﺐ أن ﻳﺤﺪدوا اﻟﺮﺑﻄﺔ اﻟﺘﻲ ﺧﺰﻧﺖ ﻓﻲ ﻗﺎﻣﻮس اﻟﺒﻴﺎﻧﺎت‬
‫ﻟﻠﻘﺎﻋﺪة ‪. B‬‬
‫وﺻﻠﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪ A‬ﻣﺘﺼﻠﺔ آﻲ ﺗﻌﻄﻲ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ اﻟﻤﺤﻠﻴﻦ اﻟﺪﺧﻮل إﻟﻲ‬
‫ﺑﻴﺎﻧﺎت آﻲ ﻳﺘﺤﻜﻤﻮا ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت وذﻟﻚ ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ ‪ ،‬ﻟﻬﺬا اﻻرﺗﺒﺎط آﻲ‬
‫ﻳﺤﺪث ‪ ،‬وآﻞ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت ﻓﻲ اﻟﻨﻈﺎم اﻟﻤﻮزع ﻳﺠﺐ أن ﺗﻜﻮن ﻋﻨﺪهﺎ اﺳﻢ ﻗﺎﻋﺪة‬
‫ﺑﻴﺎﻧﺎت اﻟﻌﺎﻟﻤﻲ اﻟﻔﺮﻳﺪ‪.‬‬
‫أﺳﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت اﻟﻌﺎﻟﻤﻲ اﻟﻔﺮﻳﺪ ﻳﺤﺪد ﺧﺎدم اﻟﺒﻴﺎﻧﺎت ﻓﻲ اﻟﻨﻈﺎم اﻟﻤﻮزع‪.‬‬
‫اﻟﻔﺎﺋﺪة اﻟﻌﻈﻴﻤﺔ ﻟﺮواﺑﻂ ﻗﺎﻋﺪة اﻟﺒﻴﻨﺎت ﻓﻬﻲ ﺗﺴﻤﺢ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﻟﻠﺪﺧﻮل إﻟﻲ‬
‫أهﺪاف اﻟﻤﺴﺘﺨﺪﻣﻴﻦ آﻲ ﻳﺘﺤﻜﻤﻮا ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ ﻟﺬا هﻢ‬
‫ﻳﺤﺪدون ﺑﻤﺠﻤﻮﻋﺔ اﻻﻣﺘﻴﺎزات ﻣﻦ ‪ ،‬ﻣﺎﻟﻚ اﻷهﺪاف‪.‬‬
‫ﺑﻜﻠﻤﺎت أﺧﺮى ‪ ،‬اﻟﻤﺴﺘﺨﺪم اﻟﻤﺤﻠﻲ ﻳﻤﻜﻦ اﻟﺪﺧﻮل واﻟﺘﺤﻜﻢ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ ﺑﺪون ﻟﻠﻤﺴﺘﺨﺪم اﻟﺬي ﻳﻜﻮن ﻟﺪﻳﺔ اﻟﻘﺪرة ﻋﻠﻲ اﻟﺘﺤﻜﻢ ﻓﻲ ﻗﺎﻋﺪة‬
‫اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ‪.‬‬
‫اﻟﻤﺜﺎل ﻳﻮﺿﺢ ﻟﻠﻤﺴﺘﺨﺪم ‪ SCOTT‬ﺑﺪﺧﻮﻟﻪ ﻟﺠﺪول ‪ EMP‬ﻋﻠﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﻓﻲ‬
‫اﻟﺘﺤﻜﻢ ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ ﻣﻊ اﻻﺳﻢ اﻟﻌﺎﻟﻤﻲ ‪NQ.ACME.COM.‬‬
‫ﻣﻠﺤﻮﻇﺔ ﻧﻤﻮذﺟﻴﺎ ‪ DBA ،‬ﻳﻜﻮن اﻟﻤﺴﺌﻮل ﻋﻦ اﻹﻧﺸﺎء ﺑﻮﺻﻠﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬
‫ﻣﻨﻈﺮ اﻟﻘﺎﻣﻮس ‪USER_DB_LINKS‬‬
‫ﻣﺤﺘﻮﻳﺎت اﻟﻤﻌﻠﻮﻣﺎت ﻋﻠﻲ اﻟﻮﺻﻼت ﻟﻠﻤﺴﺘﺨﺪم اﻟﺬي ﻳﻜﻮن ﻋﻨﺪﻩ اﻟﻮﺻﻮل‪.‬‬

‫رواﺑﻂ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬

‫إﻧﺸﺎء وﺻﻠﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬ ‫•‬

‫إﻧﺸﺎء أواﻣﺮ ‪ SQL‬اﻟﺘﻲ ﺗﺴﺘﺨﺪم آﻮﺻﻠﺔ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‪.‬‬ ‫•‬

‫اﻟﻤﺜﺎل ﻳﻌﺮض إﻧﺸﺎءات وﺻﻠﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ‪.‬‬


‫اﻟﻔﻘﺮة ‪ USING‬ﺗﺤﺪد أﺳﻢ اﻟﺨﺎدم ﻣﻦ اﻟﺘﺤﻜﻢ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﻨﺎت ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ ‪.‬‬
‫ﻣﺮة ﺗﻜﻮن اﻟﻮﺻﻠﺔ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت ﺗﻜﻮن ﻣﻨﺸﺄة ‪ ،‬ﻓﻴﻤﻜﻨﻚ آﺘﺎﺑﺔ أواﻣﺮ ‪ SQL‬ﺿﺪ‬
‫ﻣﺠﻤﻮﻋﺔ اﻟﺘﺤﻜﻢ ﻓﻲ ﺑﺎﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ‪.‬‬
‫إذا اﻟﻤﺮادﻓﺎت ﺗﻜﻮن ﻣﻬﻴﺄة ‪ ،‬ﻳﻤﻜﻨﻚ آﺘﺎﺑﺔ أواﻣﺮ ‪ SQL‬ﻣﺴﺘﺨﺪم اﻟﻤﺮادﻓﺎت‪.‬‬
‫آﻤﺜﺎل‬

‫ﺛﻢ آﺘﺎﺑﺔ أﻣﺮ اﻟﺬي ﻳﺴﺘﺨﺪم اﻟﻤﺮادﻓﺎت ‪:‬‬

‫ﻻ ﻳﻤﻜﻨﻚ ﻣﻨﺢ اﻟﺼﻼﺣﻴﺎت ﻋﻠﻲ اﻟﺘﺤﻜﻢ ﻓﻲ اﻷهﺪاف ﻣﻦ ﻋﻠﻲ ﺑﻌﺪ‪.‬‬

You might also like