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

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

1
สิทธิ์ในทริกเกอร์เมื่อใช้ใบรับรองฐานข้อมูลข้าม
ฉันใช้ใบรับรองฐานข้อมูลข้าม ( ตามที่อธิบายโดย Erland Sommarskog ) เพื่อควบคุมการเข้าถึงฐานข้อมูลบางอย่างในสภาพแวดล้อมของฉัน (SQL Server 2008 R2) ฉันมีโพรซีเดอร์ที่เก็บไว้ในฐานข้อมูล A ซึ่งอัพเดตตารางในฐานข้อมูล B. มันใช้ได้กับโพรซีเดอร์ที่เก็บไว้ในฐานข้อมูล A และตารางในฐานข้อมูล B เสมอจนถึงตอนนี้ ฉันพยายามอัพเดทตารางใน db B แต่ตารางมีทริกเกอร์อยู่ ทริกเกอร์นี้กำลังแทรกข้อมูลเพิ่มเติมในตารางอื่นใน db B ฉันได้รับข้อผิดพลาด: ข่าวสารเกี่ยวกับ 916, ระดับ 14, สถานะ 1, กระบวนงาน table_trigger, บรรทัด 11 เซิร์ฟเวอร์หลัก "sql \ login" ไม่สามารถเข้าถึงฐานข้อมูล "B" ภายใต้บริบทความปลอดภัยปัจจุบัน ฉันพยายามให้สิทธิ์การแทรกสำหรับผู้ใช้ฐานข้อมูล B ที่เชื่อมโยงกับใบรับรองเพื่อแทรกลงในตารางอื่น แต่ไม่ได้แก้ไขข้อผิดพลาด ฉันมีตัวเลือกอื่นนอกเหนือจากการเปลี่ยนทริกเกอร์เพื่อใช้งานWITH …

3
สภาพแวดล้อมการจัดเตรียมฐานข้อมูลสำหรับบุคลากรที่ไม่ใช่ด้านไอที
ฉันกำลังเสนอสภาพแวดล้อมการจัดเตรียมฐานข้อมูลให้แผนกไอทีของฉัน แนวคิดก็คือบุคคลที่ไม่ใช่ด้านไอทีอย่างฉัน (นักวิเคราะห์ข้อมูลสาธารณะ) จะมีที่สำหรับทดสอบวิธีแก้ปัญหาแล้วนำไปใช้ในสภาพแวดล้อมจริงหรือขอให้ฝ่ายไอทีนำไปใช้หากจำเป็น มีเหตุผล / สถานการณ์สองสามข้อที่สภาพแวดล้อมนี้จะเป็นประโยชน์: ฉันมีสิทธิ์ฐานข้อมูลบางขั้นพื้นฐานในสภาพแวดล้อมฐานข้อมูลอยู่ของเรา ( create table, create viewฯลฯ ) ฉันจะทำให้การเปลี่ยนแปลงสคีมาประมาณสัปดาห์ละครั้ง แต่ดูเหมือนว่าบ้าสำหรับผมที่จะทดสอบและดำเนินการเปลี่ยนแปลงเหล่านี้ในสภาพแวดล้อมที่อยู่ มีการอ้างอิงที่นับไม่ถ้วนในฐานข้อมูลดังนั้นหากมีสิ่งใดผิดพลาดอาจเป็นหายนะ ฉันค่อนข้างจะทดสอบสิ่งต่าง ๆ ล่วงหน้าในสภาพแวดล้อมที่แยกต่างหาก ฉันไม่มีสิทธิ์พิเศษขั้นสูงบางอย่างเช่นcreate triggerหรือcreate functionในฐานข้อมูลสด นี่เป็นเรื่องปกติ แต่ฉันมีปัญหาเล็กน้อยที่สามารถแก้ไขได้โดยทริกเกอร์และ / หรือฟังก์ชั่น ฉันวางแผนที่จะเสนอว่าฉันจะได้รับอนุญาตเหล่านี้ในสภาพแวดล้อมการจัดเตรียมเพื่อให้ฉันสามารถพัฒนาและทดสอบความคิดบางอย่างและถ้าพวกเขาทำงานให้เสนอว่าไอทีจะนำไปใช้ในสภาพแวดล้อมจริง โดยทั่วไปแผนกไอทีของฉันไม่มีเวลาหรือทรัพยากรในการพัฒนาโซลูชันสำหรับฉัน มันง่ายจริงๆ ดังนั้นถ้าฉันสามารถทำงานได้ด้วยตัวเองปัญหาของฉันก็มีแนวโน้มที่จะได้รับการแก้ไข 'สภาพแวดล้อมการจัดเตรียมสำหรับบุคลากรที่ไม่ใช่ด้านไอที' ดูเหมือนจะเป็นวิธีที่ดีพอสำหรับฉัน แต่โดยความจริงแล้วฉันเพิ่งคิดขึ้นมา ฉันไม่มีความคิดว่ามันจะเกิดขึ้นได้อย่างไรในโลกไอที / ฐานข้อมูล มีการฝึกฝนด้านไอที / ฐานข้อมูลใด ๆ ที่เหมาะสมกับสถานการณ์นี้หรือไม่? (ฉันอยู่ในแนวทางที่ถูกต้องเมื่อเสนอสภาพแวดล้อมการจัดเตรียมฐานข้อมูลสำหรับบุคลากรที่ไม่ใช่ด้านไอทีหรือไม่)

1
สิทธิ์การเข้าถึงโฟลเดอร์ข้อมูล SQL Server
ฉันติดตั้ง SQL Server 2014 ใหม่ ต่อไปฉันต้องการแนบฐานข้อมูลบางตัวจากเซิร์ฟเวอร์ SQL Server 2012 ก่อนหน้า ฉันคัดลอกไฟล์ทั้งหมดmdfและldfไปยังไดเรกทอรีข้อมูล แต่เมื่อฉันพยายามแนบไฟล์ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: สร้างไฟล์พบข้อผิดพลาดของระบบปฏิบัติการ 5 (ปฏิเสธการเข้าถึง) ในขณะที่พยายามเปิดหรือสร้างฟิสิคัลไฟล์ 'D: \ SQLSERVERDATA \ MSSQL12.BIDEV \ MSSQL \ DATA \ control_demo.mdf' (Microsoft SQL Server ข้อผิดพลาด: 5123) เมื่อฉันตรวจสอบการตั้งค่าความปลอดภัยของไฟล์ (คลิกขวาที่ไฟล์คุณสมบัติความปลอดภัย) มันบอกว่าฉันไม่ได้รับอนุญาตให้อ่าน บัญชีที่ฉันใช้เพื่อคัดลอกไฟล์อยู่ในกลุ่มผู้ดูแลระบบ ฉันสามารถควบคุมDATAโฟลเดอร์ได้อย่างเต็มที่ แต่ไฟล์ที่ฉันคัดลอกมานั้นมีข้อ จำกัด เมื่อฉันพยายามที่จะใช้สิทธิ์การรักษาความปลอดภัยในโฟลเดอร์ทั้งหมดอีกครั้งมันบอกว่า: ไม่สามารถระบุวัตถุในคอนเทนเนอร์ได้ การเข้าถึงถูกปฏิเสธ. เมื่อฉันคัดลอกไฟล์ไปยังที่อื่นฉันมีสิทธิ์การเข้าถึง คำถามคือฉันจะรับสิทธิ์การเข้าถึงไฟล์เหล่านี้ในDATAโฟลเดอร์ได้อย่างไร?

1
สิทธิพิเศษจะแสดงรายการใน \ l และเมื่อใด
สิทธิในการเข้าถึงถูกระบุโดย \ l เมื่อใดและจะไม่ใช้ สิทธิ์การเข้าถึงที่ระบุโดย \ l สามารถเปลี่ยนแปลงได้หลังจากการให้สิทธิ์และการเพิกถอน: $ createuser -EP my_readonly $ psql development development=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------------------------+----------+----------+-------------+-------------+----------------------- development | vagrant | UTF8 | en_GB.UTF-8 | en_GB.UTF-8 | ... development=# grant usage on schema public …

1
ฉันจะให้สิทธิ์พิเศษในการเชื่อมต่อกับ SSIS ได้อย่างไร
ความพยายามเรียกใช้แพคเกจ SSIS โดยใช้ dtexec.exe ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: Could not load package "D:\Filename.dtsx" because of error 0xC00160AE. Description: Connecting to the Integration Services service on the computer "" failed with the following error: "Access is denied." By default, only administrators have access to the Integration Services service. On Windows Vista and later, the …

2
ต้องได้รับอนุญาตก่อนเพื่อดูไดอะแกรมฐานข้อมูล
ฉันเพิ่งตั้งค่า SSDT เพื่อให้นักพัฒนาของเราใช้ เราบังคับใช้การเปลี่ยนแปลงฐานข้อมูล dev ของเราทำผ่าน SSDT โดย จำกัด สิทธิ์ที่นักพัฒนาแต่ละคนมีเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ (db_datareader, db_datawriter) ภายใน SSDT เราเผยแพร่การเปลี่ยนแปลงของเราไปยังฐานข้อมูลโดยใช้สคริปต์การปรับใช้ซึ่งเชื่อมต่อโดยใช้การเข้าสู่ระบบด้วยสิทธิ์ระดับสูง คำถามของฉัน. เนื่องจากเราได้ใช้ความยาวนี้เพื่อล็อกฐานข้อมูล (เพื่อหยุดการเลื่อนสคีมา); มีวิธีใดบ้างที่นักพัฒนาสามารถดูไดอะแกรมในฐานข้อมูลนี้โดยไม่ต้องมีสิทธิ์ db_owner? ฉันรู้ว่านักพัฒนาซอฟต์แวร์แต่ละคนสามารถสร้างและดูไดอะแกรมของเขาหรือเธอได้ แต่ฉันต้องการให้พวกเขาสามารถดูไดอะแกรมทั้งหมดที่สร้างขึ้นโดยนักพัฒนาหลายคน ฉันไม่คิดว่ามันจะช่วยได้ แต่เรากำลังเรียกใช้ sql server 2012 ความช่วยเหลือใด ๆ จะได้รับอย่างมาก

1
ให้สิทธิ์น้อยที่สุดสำหรับการเข้าถึงตารางเดี่ยวแบบอ่านอย่างเดียวบน PostgreSQL
ต่อไปนี้เป็นรายการของคำสั่งที่ดูเหมือนว่าจะทำงานเพื่อสร้างผู้ใช้ใหม่ (เข้าสู่ระบบ) และให้สิทธิ์การเข้าถึงแบบอ่านอย่างเดียวสำหรับหนึ่งตารางที่ระบุบน PostgreSQL สมมติว่าคำสั่งเหล่านี้จะถูกดำเนินการในการเข้าสู่ระบบด้วยสิทธิ์ที่เพียงพอ (เช่นการpostgresเข้าสู่ระบบในการติดตั้งเริ่มต้น) CREATE ROLE user_name NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity'; ตอนนี้ฉันต้องการอนุญาตselectบนโต๊ะtab_abcในฐานข้อมูลdb_xyzดังนั้นที่นี่มันไป (ฐานข้อมูลdb_xyzถูกเลือกเป็นปัจจุบันผ่าน PgAdmin หรืออะไรทำนองนั้น): grant select on tab_abc to user_name; คำถามคือ: นี่คือเพียงพอหรือควรจะมีเงินทุนมากขึ้น (ฐานข้อมูลconnect, usageอาจจะ)? คำสั่งเหล่านี้ดูเหมือนจะใช้งานได้สำหรับฉัน แต่การติดตั้งเริ่มต้นของฉันมีการตั้งค่าความปลอดภัยเริ่มต้น ฉันควรเพิ่มอะไรเพิ่มเติมหากผู้ดูแลระบบเซิร์ฟเวอร์กำหนดค่าความปลอดภัยที่สูงขึ้น มันดูเหมือนว่าฉันไม่ต้องการที่จะให้connectหรือusage- จะ implicite ว่าในขณะที่การอนุญาตให้select? เป็นเช่นนั้นเสมอหรือไม่

3
ผู้ใช้ไม่สามารถดูตารางใน schema ที่ไม่ใช่ค่าเริ่มต้นใน SSMS
ฉันมีปัญหาในการตั้งค่าการVIEW DEFINITIONอนุญาตอย่างเหมาะสมในระดับสคีมาสำหรับผู้ใช้รายหนึ่งของฉัน ฉันสร้างคีมาTestSchemaแล้วเพิ่มบางตาราง ผู้ใช้ปัจจุบันมีสิทธิ์ในการเข้าถึงการตั้งค่าและปรับเปลี่ยนตาราง ( SELECT, UPDATE, DELETEฯลฯ ) ผ่านdbo_datareaderและdbo_datawriterบทบาท อย่างไรก็ตามพวกเขาไม่สามารถมองเห็นตารางใด ๆ ในตัวสำรวจวัตถุ SSMS ฉันลองให้สิทธิ์เพื่อดูคำจำกัดความ: grant view definition on SCHEMA :: [TestSchema] to [User] นั่นไม่ได้ผล ฉันพยายามตั้งค่าการอนุญาตระดับตาราง: grant view definition on [TestSchema].[NewTable] to [User] นั่นก็ไม่ได้ผล จากนั้นฉันก็ลองแค่ให้ผ้าห่ม: grant view definition to [User] และนั่นก็ใช้ได้ ตอนนี้พวกเขาสามารถมองเห็นTestSchemaได้เช่นเดียวกับสกีมาอื่น ๆ ที่พวกเขาไม่ควรเข้าถึง เป้าหมายของฉันที่นี่คืออนุญาตให้ผู้ใช้ดูตารางทั้งหมดภายในสคีมาที่กำหนด ฉันจะทำให้สำเร็จได้อย่างไร หากฉันควรจะทำสิ่งนี้โดยค่าเริ่มต้นฉันควรตรวจสอบสิทธิ์ใดบ้างเพื่อค้นหาสาเหตุที่ทำไม่ได้

1
ฉันจะให้สิทธิ์ทั้งหมดกับ db2admin โลคัลกับ DB2 9.7 บน Windows ได้อย่างไร?
ฉันมีแล็ปท็อปเป็นสถานีสำหรับนักพัฒนาซอฟต์แวร์ที่มีระบบปฏิบัติการ Windows XP Professional Edition, Service Pack 3 ฉันดาวน์โหลดและติดตั้งฟิกซ์แพ็ก IBM DB2 UDB 9.7 ของ Express-C แล้ว ฉันมีบัญชี Windows ในพื้นที่ชื่อ db2admin ที่ฉันใช้ในฐานะผู้ดูแลระบบฐานข้อมูลในเครื่องสำหรับการติดตั้ง DB2 ในพื้นที่ของฉัน (เพื่อจุดประสงค์ในการพัฒนาเท่านั้น) ฉันสามารถเรียกใช้สิ่งต่อไปนี้ได้โดยไม่มีปัญหาเมื่อเรียกใช้หน้าต่างคำสั่ง: db2 attach to db2 user db2admin using xxxxxxxxxx ที่ช่วยให้ฉันแนบกับอินสแตนซ์ของฉันที่เรียกว่า DB2 ฉันสามารถรันคำสั่งสร้างฐานข้อมูลของฉันได้ ฉันพยายามเชื่อมต่อกับฐานข้อมูลเพื่อให้สิทธิ์ทั้งหมดสำหรับบัญชี db2admin ของฉันใน DB2 db2 CONNECT TO MYDB; SET SCHEMA DB2ADMIN; db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM …

1
ให้ปฏิเสธการให้สิทธิ์ซ้อน
สำหรับบทบาทdb_denycustomerฉันต้องการเฉพาะคอลัมน์รหัสของตารางลูกค้าที่สามารถเลือกได้และไม่มีรายการอื่น ๆ ดังนั้นฉันจึงทำสิ่งนี้: DENY SELECT ON dbo.customer TO db_denycustomer GRANT SELECT ON dbo.customer (code) TO db_denycustomer ... และมันก็ใช้ได้ดี เย็น! แต่ทำไม ? สิ่งที่ฉันได้อ่านในบทความที่เกี่ยวข้องคือสแต็คการอนุญาต แต่DENYมีความสำคัญกว่า ในทางตรงกันข้ามในกรณีของฉันดูเหมือนว่า "การสืบค้น" การอนุญาตครั้งล่าสุดมีความสำคัญกว่า แน่นอนถ้าฉันดำเนินการในลำดับย้อนหลังหลังDENYจะซ่อนคอลัมน์รหัสด้วย คุณช่วยอธิบายเรื่องนี้ได้ไหม ฉันได้รวมค่าเริ่มต้นdb_datawriterและdb_datareaderบทบาทให้กับผู้ใช้ที่ฉันทดสอบด้วย

1
บัญชีการอนุญาตต้องใช้สิทธิ์ใดในการใช้จดหมายฐานข้อมูล
ฉันมีอินสแตนซ์ SQL Server 2012 ทำงานภายใต้บัญชีบริการที่ได้รับการจัดการ ฉันได้กำหนดค่าเมลฐานข้อมูลด้วยบัญชีเดียวและพยายามส่งทดสอบอีเมล แต่ฉันพบข้อผิดพลาดบางอย่างในบันทึกเหตุการณ์ของเซิร์ฟเวอร์: Database Engine Instance = MYINSTANCE; Mail PID = 2132 ข้อความแสดงข้อผิดพลาด: การอัพเดทฐานข้อมูลล้มเหลว สาเหตุ: สิทธิ์ EXECUTE ถูกปฏิเสธในวัตถุ 'sysmail_logmailevent_sp', ฐานข้อมูล 'msdb', schema 'dbo' อินสแตนซ์ Engine ของฐานข้อมูล = MYINSTANCE; Mail PID = 2212; ประเภทข้อยกเว้น: Microsoft.SqlServer.Management.SqlIMail.Server.Common.BaseException ข้อความ: การอ่านบนฐานข้อมูลล้มเหลว สาเหตุ: สิทธิ์ EXECUTE ถูกปฏิเสธในวัตถุ 'sp_readrequest', ฐานข้อมูล 'msdb', schema 'dbo' ข้อมูล: …

1
มีความแตกต่างระหว่างการให้สิทธิ์ผู้ใช้ SELECT กับการเพิ่มผู้ใช้ในบทบาท db_datareader หรือไม่?
ฉันถูกขอให้ทุนSELECT, INSERTและUPDATEไปยังผู้ใช้ที่กำหนดสำหรับตารางทั้งหมดในฐานข้อมูล ฉันสิ้นสุดการเพิ่มผู้ใช้db_datareaderและอนุญาตพวกเขาINSERTและUPDATEในระดับฐานข้อมูล แต่นั่นทำให้ฉันคิดว่าอะไรคือความแตกต่าง (ถ้ามี) ระหว่างการให้SELECTสิทธิ์ผู้ใช้ในระดับฐานข้อมูลหรือเพิ่มเข้าไปในdb_datareaderบทบาท และมีวิธีปฏิบัติที่ดีที่สุดในทางใดทางหนึ่งหรือไม่?

1
ความหมายของความปลอดภัยของ sp_executesql คืออะไร
โดยค่าเริ่มต้นใน SQL Server ที่[public]มีบทบาทสิทธิEXECUTEsp_executesql แต่ผมได้รับมรดกเซิร์ฟเวอร์ฐานข้อมูลที่ DBA ก่อนหน้านี้ได้มีการเพิกถอนขวาบนEXECUTEsp_executesql ในฐานะวิธีแก้ปัญหาชั่วคราวฉันได้ให้EXECUTEสิทธิsp_executesqlในการใช้งานตามความจำเป็น (ผ่านบทบาทในฐานข้อมูลหลัก) แต่นี่เป็นจุดเริ่มต้นของความเจ็บปวดในการบำรุงรักษา หากฉันมอบEXECUTEคืนสู่สาธารณะมีผลกระทบใดที่ฉันต้องระวังหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.