SQL Server ที่ปลอดภัยและหลัก
การรักษาความปลอดภัยอ้างอิงถึงทรัพยากรที่ระบบการให้สิทธิ์ SQL Server Database Engine ควบคุมการเข้าถึง ตัวอย่างจะเป็นตารางฐานข้อมูล
หลักอ้างอิงถึงเอนทิตีที่ต้องการเข้าถึงทรัพยากร SQL Server ตัวอย่างเช่น ผู้ใช้ที่ร้องขอสิทธิ์ในตารางเป็นหลัก
คำชี้แจงสิทธิ์ของเซิร์ฟเวอร์ SQL
ต่อไปนี้แสดงไวยากรณ์ของคำสั่ง GRANT ใน SQL Server:
ให้สิทธิ์
บน หลักที่ปลอดภัย;
คุณต้องระบุสิทธิ์ที่คุณต้องการกำหนดให้กับตัวหลักเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค
คำหลัก ON ช่วยให้คุณสามารถระบุการรักษาความปลอดภัยที่จะใช้การอนุญาต สุดท้าย คำหลัก TO ช่วยให้คุณสามารถตั้งค่าหลักเป้าหมายได้
ตัวอย่างเช่น การสร้างผู้ใช้โดยใช้คำสั่ง CREATE USER ไม่ได้กำหนดการอนุญาตสำหรับผู้ใช้นั้น ดังนั้นจึงจำเป็นต้องใช้คำสั่ง GRANT เพื่อกำหนดสิทธิ์สำหรับผู้ใช้นั้น
ให้เรายกตัวอย่าง
สร้างตัวอย่างการเข้าสู่ระบบ
ให้เราเริ่มต้นด้วยการสร้างตัวอย่างการเข้าสู่ระบบเพื่อจุดประสงค์ในการอธิบาย แบบสอบถามมีดังต่อไปนี้:
สร้างการเข้าสู่ระบบ linuxhintด้วยรหัสผ่าน = 'รหัสผ่าน';
คำสั่งด้านบนควรสร้างผู้ใช้ด้วยชื่อผู้ใช้ linuxhint และรหัสผ่านที่ระบุ
สร้างฐานข้อมูลตัวอย่าง
เราสามารถสร้างฐานข้อมูลที่ผู้ใช้จะอยู่เมื่อเราได้กำหนดการเข้าสู่ระบบ แบบสอบถามมีดังนี้:
วางฐานข้อมูลหากมีตัวแก้ไขสร้างตัวแก้ไขฐานข้อมูล
ใช้ตัวแก้ไข;
วางตารางถ้ามีรายการ;
สร้างรายการตาราง (
id int ไม่ใช่ข้อมูลประจำตัวที่เป็นโมฆะ (1,
1) คีย์หลัก
server_name varchar (50),
server_address varchar(255) ไม่เป็นโมฆะ
compression_method varchar(100) เริ่มต้น 'ไม่มี'
size_on_disk ลอยไม่เป็นโมฆะ
size_compressed ลอย
total_records int ไม่เป็นโมฆะ
วันที่ init_date
);
แทรก
เข้าไปข้างใน
รายการ (server_name,
ที่อยู่เซิฟเวอร์,
วิธีการบีบอัด
size_on_disk,
size_compressed,
total_records,
init_date)
ค่า
('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('Redis','localhost:6307','Snappy',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('ค้นหาแบบยืดหยุ่น','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('MongoDB','localhost:27017','Snappy',4.55,4.10,620000,'2021-12-12'),
('Apache Cassandra','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');
สร้างผู้ใช้สำหรับการเข้าสู่ระบบ
เมื่อเราสร้างฐานข้อมูลและตารางแล้ว เราสามารถสร้างผู้ใช้สำหรับการเข้าสู่ระบบ linuxhint เป็น:
ใช้ตัวแก้ปัญหาสร้างผู้ใช้ linuxhint
สำหรับการเข้าสู่ระบบ linuxhint;
เข้าสู่ระบบในฐานะผู้ใช้ใหม่
ต่อไปให้เราเข้าสู่ระบบในฐานะผู้ใช้ที่สร้างขึ้นใหม่ คำสั่งแสดงดังรูป:
setuser 'linuxhint';เมื่อเข้าสู่ระบบแล้ว เราสามารถลองดูตารางได้โดยการรันคำสั่ง select:
เลือก * จากรายการ;การเรียกใช้แบบสอบถามด้านบนควรส่งคืนข้อผิดพลาด:
ข่าวสารเกี่ยวกับ 229 ระดับ 14 สถานะ 5 บรรทัด 379สิทธิ์ SELECT ถูกปฏิเสธในวัตถุ 'รายการ' ฐานข้อมูล 'ตัวแก้ไข' สคีมา 'dbo'
เนื่องจากผู้ใช้ linuxhint ไม่มีสิทธิ์ใดๆ ในฐานข้อมูล รวมถึงสิทธิ์ SELECT
ให้สิทธิ์แก่ผู้ใช้
เราจำเป็นต้องให้สิทธิ์ SELECT เพื่ออนุญาตให้ผู้ใช้ดูข้อมูลที่จัดเก็บไว้ในตาราง
คุณต้องเข้าสู่ระบบด้วยบัญชีผู้ดูแลระบบ SQL Server
ถัดไป เรียกใช้แบบสอบถามเป็น:
อนุญาตให้เลือกรายการเพื่อ linuxhint;เมื่อดำเนินการแล้ว ให้เข้าสู่ระบบในฐานะผู้ใช้ linuxhint และใช้คำสั่ง SELECT
เลือก * จากรายการ;ในกรณีนี้ คำสั่งจะส่งคืนตารางเนื่องจากผู้ใช้มีสิทธิ์ SELECT
คุณยังสามารถกำหนดสิทธิ์อื่นๆ ให้กับผู้ใช้ เช่น แทรกและลบเป็น:
ให้สิทธิ์แทรกลบรายการไปยัง linuxhint;ในกรณีนี้ ผู้ใช้ linuxhint ควรมีสิทธิ์ SELECT, INSERT และ DELETE ในตารางรายการ
บทสรุป
ในโพสต์นี้ เราได้สำรวจการใช้คำสั่ง GRANT ใน SQL Server คำสั่งอนุญาตให้คุณกำหนดสิทธิ์ให้กับผู้ใช้หลักที่กำหนด