คำถามติดแท็ก permissions

สิทธิ์ที่มอบให้กับบัญชีหรือบทบาทผ่านกลไกความปลอดภัยของระบบปฏิบัติการผู้จัดการฐานข้อมูลหรือระบบอื่น ๆ

19
นักพัฒนาควรจะสามารถสืบค้นฐานข้อมูลการผลิตได้หรือไม่
นักพัฒนาควรได้รับอนุญาตให้สืบค้นSELECTฐานข้อมูลการผลิต( / อ่านอย่างเดียว) หรือไม่? สถานที่ก่อนหน้านี้ที่ฉันทำงานทีมพัฒนามีdb_datareaderบทบาท; ที่ฉันทำงานอยู่ตอนนี้ทีมพัฒนาไม่สามารถเชื่อมต่อกับอินสแตนซ์การผลิตได้ หนึ่งในอินสแตนซ์ทดสอบคือสำเนาของการผลิตที่คืนค่าจากการสำรองการผลิตสัปดาห์ละครั้งดังนั้นจึงไม่มีปัญหาใด ๆ กับนักพัฒนาที่เห็นข้อมูลจริง มีเหตุผลที่ดีอะไรบ้างที่ไม่อนุญาตให้นักพัฒนาทำการสืบค้นการผลิต (ยกเว้นเพียงแค่ไม่ต้องการให้พวกเขาเข้าถึงการอ่านข้อมูลที่ละเอียดอ่อน)?

7
รายการสิทธิ์ของฐานข้อมูลโดยใช้ psql
ฉันอยู่ระหว่างการย้ายเซิร์ฟเวอร์ฐานข้อมูลและฉันไม่สามารถคิด (หลังจากค้นหาและค้นหาที่นี่) ฉันจะแสดงรายการสิทธิ์การใช้ฐานข้อมูล (หรือสิทธิ์ทั้งหมดบนเซิร์ฟเวอร์) บน PostgreSQL โดยใช้psqlเครื่องมือบรรทัดคำสั่งได้อย่างไร ฉันใช้ Ubuntu 11.04 และรุ่น PostgreSQL ของฉันคือ 8.2.x



1
วิธีจัดการสิทธิ์เริ่มต้นสำหรับผู้ใช้ในฐานข้อมูลกับ SCHEMA
ฉันต้องการย้ายแอปพลิเคชั่นฐานข้อมูลที่ขับเคลื่อนด้วยฐานข้อมูลอย่างง่าย ๆ จาก SQLite3 ไปยัง PostgreSQL 9.3 และกระชับสิทธิ์ใน DB ขณะที่ฉันดำเนินการ แอปพลิเคชันในปัจจุบันประกอบด้วยคำสั่งเพื่ออัปเดตข้อมูล และหนึ่งในการค้นหา โดยปกติฉันจะต้องบำรุงรักษาฐานข้อมูลด้วยวิธีอื่น (สร้างตารางมุมมองทริกเกอร์ ฯลฯ ) ใหม่ ในขณะที่แอปพลิเคชันนี้จะเป็นโฮสต์เดียวบนเซิร์ฟเวอร์ในตอนแรกฉันต้องการอบในสมมุติฐานว่ามันอาจจะโฮสต์บนเซิร์ฟเวอร์ที่มีฐานข้อมูลอื่น ๆ ในอนาคตแทนที่จะต้องแย่งภายหลังหากจำเป็น อนาคต. ฉันคิดว่าสิ่งเหล่านี้เป็นข้อกำหนดที่พบได้ทั่วไป แต่ฉันมีปัญหาในการค้นหาบทช่วยสอนที่อธิบายวิธีตั้งค่าฐานข้อมูลใหม่ใน PostgreSQL โดยมีการแยกผู้ใช้ / สิทธิ์แบบนี้ การอ้างอิงดำเนินไปอย่างมีความยาวเกี่ยวกับกลุ่มผู้ใช้บทบาทฐานข้อมูลสกีมาและโดเมน แต่ฉันพบว่าพวกเขาสับสน นี่คือสิ่งที่ฉันได้ลองมาแล้ว (จากภายในpsqlเป็น 'postgres'): CREATE DATABASE hostdb; REVOKE ALL ON DATABASE hostdb FROM public; \connect hostdb CREATE SCHEMA hostdb; CREATE USER hostdb_admin …

4
ผู้ใช้ที่สร้างขึ้นสามารถเข้าถึงฐานข้อมูลทั้งหมดใน PostgreSQL โดยไม่ต้องมีการมอบสิทธิ์ใด ๆ
ฉันต้องคิดถึงบางสิ่งเกี่ยวกับการตั้งค่า PostgreSQL สิ่งที่ฉันต้องการจะทำคือสร้างฐานข้อมูลและผู้ใช้ที่แยกจากกันเพื่อให้ผู้ใช้เฉพาะสามารถเข้าถึงฐานข้อมูลที่ฉันระบุ อย่างไรก็ตามจากสิ่งที่ฉันสามารถตรวจสอบได้ผู้ใช้ที่สร้างขึ้นใด ๆ สามารถเข้าถึงฐานข้อมูลทั้งหมดโดยไม่มีการมอบสิทธิ์ใด ๆ นี่คือสิ่งที่ฉันทำบน Ubuntu Server 12.04: apt-get install postgresql sudo -u postgres createuser -DRSP mike1 (การระบุรหัสผ่านสำหรับผู้ใช้ใหม่) sudo -u postgres createdb data1 psql -h localhost -U mike1 data1 (การระบุรหัสผ่านสำหรับผู้ใช้ mike1 เพื่อล็อกอิน) ดูเหมือนว่าผู้ใช้ใหม่ "mike1" ไม่มีปัญหาในการเชื่อมต่อกับฐานข้อมูล "data1" และการสร้างตาราง ฯลฯ และสิ่งนี้โดยไม่ต้องเรียกใช้คำสั่ง GRANT เลย (และเจ้าของ "data1" คือ "postgres" เนื่องจากฉันไม่ได้ระบุ เจ้าของในขั้นตอนที่ …

3
ทำไมผู้ใช้ใหม่ได้รับอนุญาตให้สร้างตาราง?
ฉันสงสัยว่าทำไมผู้ใช้ที่เพิ่งสร้างใหม่ได้รับอนุญาตให้สร้างตารางหลังจากเชื่อมต่อกับฐานข้อมูล ฉันมีฐานข้อมูลเดียวproject2_core: postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ---------------+--------------+-----------+-------------+-------------+------------------------------- postgres | postgres | SQL_ASCII | C | C | project2_core | atm_project2 | UTF8 | de_DE.UTF-8 | de_DE.UTF-8 | project2=CTc/project2 template0 | postgres | SQL_ASCII | C | C …

4
ฉันจะเปลี่ยน DEFINER ของ VIEW ใน Mysql ได้อย่างไร
เมื่อฉันเรียกใช้ mysqldump ฉันได้รับข้อผิดพลาด: mysqldump: Got error: 1449: The user specified as a definer ('root'@'foobar') does not exist when using LOCK TABLES เรื่องนี้สมเหตุสมผลเพราะfoobarเป็นเครื่องจักรที่ไม่มีอยู่จริง ฉันจะเปลี่ยนนิยามของตารางทั้งหมดเป็น 'root' @ 'localhost' ได้อย่างไร

2
oracle - แสดงรายการผู้ใช้ที่สามารถเข้าถึงตารางบางอย่างได้
ฉันแน่ใจว่ามีการถามก่อนหน้านี้ แต่ฉันไม่พบรายละเอียดที่เกี่ยวข้องสำหรับสิ่งต่อไปนี้ มีตารางที่สร้างไว้ล่วงหน้าบางประเภทที่สามารถทำสิ่งต่อไปนี้ได้หรือไม่ (ฉันใช้ dba_tab_privs แล้ว แต่มีข้อ จำกัด และไม่ตรงกับความต้องการทั้งหมดของฉัน) ถ้าไม่มีใครมีข้อสงสัยในการตอบคำถามต่อไปนี้บ้าง รายการผู้ใช้ทั้งหมดที่ได้รับมอบหมายบทบาทเฉพาะหรือไม่ รายการบทบาททั้งหมดที่มอบให้กับผู้ใช้หรือไม่? แสดงรายการสิทธิ์ทั้งหมดที่มอบให้กับผู้ใช้หรือไม่ แสดงรายการว่าบทบาทใดในตารางที่ให้สิทธิ์การเข้าถึง SELECT แสดงรายการตารางทั้งหมดที่ผู้ใช้สามารถเลือกได้ ทำรายการผู้ใช้ทุกคนที่สามารถเลือกได้บนตารางเฉพาะ (ผ่านการได้รับบทบาทที่เกี่ยวข้องหรือผ่านการให้สิทธิ์โดยตรง ผลลัพธ์ของแบบสอบถามนี้ควรแสดงให้เห็นถึงบทบาทที่ผู้ใช้มีสิทธิ์เข้าถึงนี้หรือไม่ว่าจะเป็นการให้สิทธิ์โดยตรง

4
ฉันควรอัปเดตอย่างชัดเจนไปยังคอลัมน์ที่ไม่ควรอัปเดตหรือไม่
ฉันคุ้นเคยกับการทำงานในสภาพแวดล้อมที่ปลอดภัยและดังนั้นฉันจึงออกแบบการอนุญาตของฉันให้ดีมาก สิ่งหนึ่งที่ฉันทำตามปกติคือDENYผู้ใช้สามารถระบุUPDATEคอลัมน์ที่ไม่ควรอัปเดตได้อย่างชัดเจน ตัวอย่างเช่น: create table dbo.something ( created_by varchar(50) not null, created_on datetimeoffset not null ); คอลัมน์สองเหล่านี้ไม่ควรเปลี่ยนแปลงเมื่อมีการตั้งค่า ดังนั้นผมจะชัดเจนรับอนุญาตเกี่ยวกับพวกเขาDENYUPDATE เมื่อเร็ว ๆ นี้ในระหว่างการประชุมทีมนักพัฒนาได้ยกประเด็นที่ตรรกะเพื่อให้แน่ใจว่าเขตข้อมูลที่ไม่เคยได้รับการปรับปรุงควรจะอยู่ในเลเยอร์แอปพลิเคชันและไม่ใช่ชั้นฐานข้อมูลในกรณีที่ "พวกเขาจำเป็นต้องปรับปรุงค่า สำหรับฉันแล้วดูเหมือนว่าความคิด dev ทั่วไป (ฉันรู้ว่าฉันเคยเป็นหนึ่ง!) ฉันเป็นสถาปนิกอาวุโสที่ บริษัท ของฉันและฉันได้ทำงานตามหลักการของสิทธิพิเศษจำนวนน้อยที่สุดที่ต้องใช้เพื่อให้แอปทำงานได้ สิทธิ์ทั้งหมดจะได้รับการตรวจสอบเป็นประจำ แนวปฏิบัติที่ดีที่สุดในสถานการณ์นี้คืออะไร?

2
SQL Server - อนุญาตให้สิทธิ์กับทั้ง schema กับวัตถุ?
ฉันเป็นมิตรกับโลกของการจัดการสิทธิ์ในฐานข้อมูลใน SQL Sever ขอยกตัวอย่างง่ายๆ สมมติว่าบัญชี 'admin' เป็นเจ้าของ schemas A, B และ C มีบัญชี 'minion' อีกบัญชีหนึ่งที่คุณต้องการให้มีสิทธิ์อย่างเต็มที่ (อัปเดต / ลบ / แทรก / เลือก / แก้ไข) บนวัตถุใด ๆ (ตาราง / มุมมอง) ที่สร้างขึ้นภายใต้สคีมา A, B และ C เป็นไปได้ไหม หรือคุณต้องใช้คำสั่งให้สิทธิ์ทุกครั้งที่คุณเพิ่มตาราง / มุมมองภายใต้สคีมาเหล่านี้หรือไม่? (ดูเหมือนฉันจะโง่ไปหน่อย)

3
ให้ระบบไฟล์เข้าถึงบัญชีเสมือน SQLSERVERAGENT
ฉันพยายามให้สิทธิ์การNT Service\SQLSERVERAGENTเข้าถึงระบบไฟล์บัญชี Windows ตามคำตอบที่ทำเครื่องหมายไว้ในคำถามนี้ ฉันเชื่อว่าเป็นบัญชีบริการเสมือนจริงและไม่ปรากฏในแผงควบคุม ->พื้นที่บัญชีผู้ใช้ ฉันจะอนุญาตให้บัญชีบริการนี้เข้าถึงระบบไฟล์ได้อย่างไร โดยเฉพาะใน Windows 7 ฉันอ่านหลายวิธีแล้วและดูเหมือนจะไม่มีตัวเลือกสำหรับฉัน ฉันลองใช้วิธี PowerShell แต่คำสั่ง AD ไม่ใช่คำสั่งที่ถูกต้อง ฉันยังดาวน์โหลดและติดตั้งแพตช์ windows ที่จำเป็นสำหรับคำสั่งเหล่านั้น ฉันได้อ่านด้วยว่าฉันควรจะทำสิ่งนี้ผ่านทางตัวจัดการการกำหนดค่าเซิร์ฟเวอร์ SQL หรือสตูดิโอการจัดการ ฉันไม่สามารถคิดออกว่าจะปรับเปลี่ยนสิทธิ์เหล่านี้ได้ที่ไหน กระบวนการ บริษัท ตัวแทนของเซิร์ฟเวอร์ SQL ล้มเหลวในการเริ่มต้นด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้: Login failed for user 'NT SERVICE\SQLSERVERAGENT'. Reason: Failed to open the explicitly specified database 'msdb'. [CLIENT: <local machine>] จาก Googling ของฉันมันเกี่ยวข้องกับการอนุญาตของบัญชีนี้ ฉันไม่แน่ใจว่าฐานข้อมูลเสียหาย …


4
ให้สิทธิ์ในการเรียกใช้งานเซิร์ฟเวอร์ SQL
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Exchange Administrators Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันมีงานบนเซิร์ฟเวอร์ MSSQL 2005 ของฉันที่ฉันต้องการอนุญาตให้ผู้ใช้ฐานข้อมูลใด ๆ ทำงาน ฉันไม่กังวลเกี่ยวกับความปลอดภัยเนื่องจากอินพุตของงานจริงมาจากตารางฐานข้อมูล เพียงแค่เรียกใช้งานโดยไม่ต้องเพิ่มบันทึกลงในตารางนั้นจะไม่ทำอะไรเลย ฉันไม่สามารถหาวิธีอนุญาตสิทธิ์สาธารณะให้กับงานได้ มีวิธีการทำเช่นนี้? สิ่งเดียวที่ฉันสามารถคิดได้ ณ จุดนี้คือการให้งานทำงานอย่างต่อเนื่อง (หรือตามกำหนดเวลา) แต่เนื่องจากมันจำเป็นต้องทำงานจริง ๆ น้อย ๆ (บางทีทุกๆสองสามเดือน) และฉันต้องการให้งานเป็นจริง เสร็จสิ้นทันทีที่มีอยู่สิ่งนี้ดูเหมือนจะไม่เป็นทางออกที่ดีที่สุด

4
เพราะเหตุใด INSERT BULK จึงถือว่าเป็นอันตราย
คำถามนี้ถูกย้ายจากการแลกเปลี่ยนความปลอดภัยข้อมูลกองซ้อนเนื่องจากสามารถตอบได้ในการแลกเปลี่ยนผู้ดูแลฐานข้อมูล อพยพ 2 ปีที่แล้ว ฉันต้องการที่จะเข้าใจว่าทำไมทีมรักษาความปลอดภัยทางไซเบอร์โดยทั่วไป (มากกว่าหนึ่งองค์กรที่ฉันจัดการ) ถูกตั้งค่าให้ตายต่อการให้สิทธิ์BULK INSERT(เช่น TSQL) กับแอปพลิเคชันและโปรแกรมเมอร์ฐานข้อมูล ฉันไม่อยากจะเชื่อข้อแก้ตัว "เติมดิสก์ที่ไม่เหมาะสม" เว้นแต่ฉันจะพลาดบางสิ่งเนื่องจากผลลัพธ์ที่ได้ไม่ต่างจากแอพพลิเคชั่นที่ทำสิ่งต่อไปนี้: for (long i = 0; i < LONG_MAX; ++i) executeSQL("INSERT INTO table VALUES(...)"); และINSERTเป็นคำสั่ง DML ทั่วไปที่ทุกคนที่มีสิทธิ์เขียนขั้นพื้นฐานสามารถดำเนินการได้ เพื่อประโยชน์ของแอปพลิเคชันBULK INSERTมีประสิทธิภาพมากขึ้นเร็วขึ้นและบรรเทาความต้องการโปรแกรมเมอร์ในการแยกวิเคราะห์ไฟล์นอก SQL แก้ไข: เดิมฉันถามคำถามนี้ในเว็บไซต์ความปลอดภัยของข้อมูลด้วยเหตุผล - ไม่ใช่ DBA ที่ขัดกับการใช้ BULK INSERT มันคือ "การรับรองข้อมูล" (IA สำหรับย่อ - กลุ่มความปลอดภัยทางไซเบอร์) ที่บังคับให้ออก ฉันจะปล่อยให้คำถามนี้ตุ๋นอีกหนึ่งหรือสองวัน แต่ถ้าการดำเนินการเป็นกลุ่มทำผ่านข้อ จำกัด …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.