5.22 Access Rights
The grant operation assigns access rights to users. To delegate access rights to
other users, a user must “own” these rights. The set of access rights includes
select, insert, update, and delete and refers to the right of executing each
of these operations on a table. Further, update can be restricted to specific
columns.
All these access rights are granted to the creator of a table automatically.
The creator, in turn, may grant access rights to other users or to all users
(designated in SQL as public). The SQL standard envisions a mechanism that
can limit the excessive proliferation of access rights. Namely, a user may receive
the select right with or without the right to grant this right to others by his
own action.
Example 5.22.1 Suppose that the user alex owns the table COURSES and
intends to grant this right to the user whose name is peter. The user alex can
accomplish this by
grant select on COURSES to peter
Now, peter has the right to query the table COURSES but he may not propagate
this right to the user ellie. In order for this to happen, alex would have to
use the directive:
grant select on COURSES to peter
with grant option
Example 5.22.2 If peter owns the table STUDENTS, then he may delegate
the right to query the table and the right to update the columns addr, city and
zip to ellie using the directive:
grant select, update(addr, city, zip) on
STUDENTS to ellie
The standard syntax of grant is:
154 SQL — The Relational Language
grant {priv{,priv} | all [privileges]}
on [table] tablename{, tablename}
to husername{, username}|publici
[with grant option]
Here priv has the syntax:
hselect|insert|delete|update[(attribute{, attribute})]i
Privileges can be revoked using the revoke construct, which is a feature
of standard SQL. For instance, if peter wishes to revoke ellie’s privileges to
update the table STUDENTS, he may write:
revoke update(addr,city,zip) on
STUDENTS from ellie
The standard syntax for this directive is
revoke {priv{,priv}|all [privileges]}
on [table] tablename{, tablename}
from husername{, username}|publici
5.22 สิทธิการเข้าถึงการเงินช่วยเหลือกำหนดสิทธิ์ผู้ใช้ เมื่อต้องการมอบหมายสิทธิ์ผู้ใช้คนอื่น ผู้ใช้ต้อง "เป็นเจ้าของ" สิทธิเหล่านี้ มีชุดของสิทธิการเข้าถึงเลือก แทรก ปรับ ปรุง ลบ และอ้างอิงถึงการดำเนินการแต่ละการดำเนินการเหล่านี้ในตาราง เพิ่มเติม ปรับปรุงสามารถถูกจำกัดให้เฉพาะคอลัมน์สิทธิการเข้าถึงเหล่านี้ทั้งหมดจะได้รับการสร้างตารางโดยอัตโนมัติผู้สร้าง จะ อาจให้สิทธิการเข้าถึงผู้ใช้อื่น ๆ หรือผู้ใช้ทั้งหมด(กำหนดใน SQL เป็นสาธารณะ) มาตรฐาน SQL envisions กลไกที่สามารถจำกัดการขยายตัวมากเกินไปของสิทธิการเข้าถึง คือ ผู้ใช้อาจได้รับเลือกขวามี หรือไม่ มีสิทธิที่จะให้สิทธินี้ให้ผู้อื่น โดยเขาดำเนินการเองตัวอย่าง 5.22.1 สมมติว่า ผู้ใช้อเล็กซ์เป็นเจ้าของหลักสูตรตาราง และมีสิทธิ์นี้ผู้ใช้ที่มีชื่อเป็นปีเตอร์ ผู้ใช้สามารถอเล็กซ์ทำโดยให้เลือกในหลักสูตรกับปีเตอร์ตอนนี้ ปีเตอร์มีสิทธิที่จะสอบถามตารางเรียน แต่เขาอาจไม่แพร่กระจายellie ผู้ใช้สิทธินี้ ในการนี้จะเกิดขึ้น อเล็กซ์จะต้องใช้คำสั่ง:ให้เลือกในหลักสูตรกับปีเตอร์มีให้เลือกตัวอย่าง 5.22.2 ถ้าปีเตอร์เป็นเจ้าของตารางเรียน แล้วเขาอาจมอบหมายสิทธิในการสอบถามตารางและสิทธิ์ในการปรับปรุงคอลัมน์อยู่ เมือง และไปรษณีย์ให้ ellie โดยใช้คำสั่ง:ให้เลือก ปรับ (ที่อยู่ เมือง ไปรษณีย์)นักเรียน ellieไวยากรณ์มาตรฐานของเงินช่วยเหลือคือ:154 SQL คือภาษาสัมพันธ์กันอนุญาต { priv {, priv } | ทั้งหมด [สิทธิ์] }บน tablename [ตาราง] { tablename }การ husername {, ชื่อผู้ใช้} |publici[มีให้เลือก]ที่นี่ priv มีไวยากรณ์:hselect|insert|delete|update [(แอตทริบิวต์ { แอตทริบิวต์})] ฉันสิทธิ์การใช้งานสามารถเลิกใช้การยกเลิกโครงสร้าง ซึ่งเป็นคุณลักษณะของ SQL มาตรฐาน ตัวอย่าง ถ้าปีเตอร์ต้องการยกเลิกสิทธิ์ของ ellieตารางเรียน ปรับปรุงอาจเขียน:ยกเลิก update(addr,city,zip) บนนักเรียนจาก ellieมาตรฐานไวยากรณ์สำหรับคำสั่งนี้เป็นยกเลิก { priv {, priv } |all [สิทธิ์] }บน tablename [ตาราง] { tablename }จาก husername {, ชื่อผู้ใช้} |publici
การแปล กรุณารอสักครู่..
ให้ 5.22 สิทธิการเข้าถึงการกำหนดสิทธิการเข้าถึงของผู้ใช้ เพื่อมอบสิทธิการเข้าถึง
ผู้ใช้อื่น ๆ ผู้ใช้จะต้อง " เอง " สิทธิเหล่านี้ ตั้งค่าสิทธิ์การเข้าถึงรวมถึง
เลือกแทรกปรับปรุงและลบและหมายถึงสิทธิในการดําเนินการแต่ละ
ปฏิบัติการเหล่านี้บนโต๊ะ เพิ่มเติมการปรับปรุงสามารถ จำกัด การคอลัมน์เฉพาะ
ทั้งหมดนี้ จะได้รับสิทธิ์การเข้าถึงเพื่อสร้างตารางอัตโนมัติ .
ผู้สร้างในการเปิดอาจให้สิทธิ์การเข้าถึงให้กับผู้ใช้อื่น ๆหรือกับผู้ใช้ทั้งหมด
( เขตใน SQL ที่เป็นสาธารณะ ) มาตรฐาน SQL envisions กลไกที่สามารถ จำกัด การ
มากเกินไปของสิทธิในการเข้าถึง คือ ผู้ใช้อาจได้รับ
เลือกขวามี หรือ ไม่มีสิทธิที่จะให้สิทธิ์นี้กับคนอื่นเขา
การกระทำของตัวเอง เช่น 5.22.1
สมมติว่าผู้ใช้อเล็กซ์เป็นเจ้าของโต๊ะและตั้งใจที่จะให้สิทธิ์
หลักสูตรนี้ผู้ใช้ที่ชื่อปีเตอร์ ผู้ใช้สามารถบรรลุนี้โดยอเล็กซ์
ให้เลือกหลักสูตรปีเตอร์
ตอนนี้ ปีเตอร์ มีสิทธิที่จะสอบถามตารางการเรียนการสอน แต่เขาไม่อาจเผยแพร่
สิทธินี้ให้กับผู้ใช้ เอลลี่ เพื่อให้มันเกิดขึ้น อเล็กซ์ จะต้องใช้คำสั่ง :
ให้เลือกในหลักสูตรเพื่อให้ตัวเลือกกับปีเตอร์
ตัวอย่าง 5.22.2 ถ้าปีเตอร์เจ้าของโต๊ะนักเรียน แล้วเขาอาจมอบหมาย
สิทธิที่จะสอบถามตารางและสิทธิที่จะปรับปรุงคอลัมน์บาป , เมืองและ
ซิปเพื่อเอลลี่โดยใช้คำสั่ง :
ให้เลือก Update ( บาป , เมือง , รหัสไปรษณีย์
) นักเรียนเอลลี่
ไวยากรณ์มาตรฐาน แกรนท์ :
154 SQL - สัมพันธ์ภาษา
{ { priv สิทธิ์ ,| PRIV } [ ] } สิทธิพิเศษทั้งหมดบนโต๊ะ
[ ] tablename { } ,
tablename เพื่อ husername } { ผู้ใช้ | publici
[ ]
ที่นี่มีให้เลือก PRIV มีไวยากรณ์ :
hselect | แทรก | ลบ | ปรับปรุง [ ( คุณสมบัติ { คุณลักษณะ } ) ]
สิทธิพิเศษสามารถยกเลิกใช้ การยกเลิกสร้าง ซึ่งเป็นคุณลักษณะ
ของ SQL มาตรฐาน ตัวอย่าง ถ้าปีเตอร์ ประสงค์จะเพิกถอนสิทธิ์ของเอลลี่
update ตารางนักเรียน เขาอาจเขียน :
ยกเลิกการปรับปรุง ( บาป , เมือง , รหัสไปรษณีย์ )
นักเรียนจากเอลลี่
ไวยากรณ์มาตรฐานสำหรับคำสั่งนี้คือ { {
เพิกถอน priv , | PRIV } [ ] } สิทธิพิเศษทั้งหมดบนโต๊ะ tablename {
[ ]
จาก husername tablename } , { } | publici
ผู้ใช้
การแปล กรุณารอสักครู่..