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

การอนุญาตให้ผู้ใช้เข้าถึงเฉพาะข้อมูลที่ได้รับอนุญาตให้เข้าถึง นอกจากนี้ยังครอบคลุมการปกป้องข้อมูลในระหว่างการเคลื่อนไหวบนเครือข่ายและการจัดเก็บข้อมูลบนดิสก์และการสำรองข้อมูล

2
การเปลี่ยนรหัสผ่าน“ sa” ต้องการการเริ่ม SQL ใหม่ (ในโหมดผสม) หรือไม่?
เราค้นพบบัญชี SQL "sa" ที่ใช้งานในลักษณะที่ไม่ควรเป็นดังนั้นเราจึงเปลี่ยนรหัสผ่าน sa ในอินสแตนซ์ SQL ของเราทั้งหมด (เรามี SQL 2005 ถึง 2017 เซิร์ฟเวอร์ที่ทำงานในโหมดการตรวจสอบสิทธิ์แบบผสมผู้ใช้และแอปพลิเคชันทั้งหมดควรใช้บัญชีโดเมนหรือบัญชี SQL ที่ไม่ใช่ sa เพื่อเชื่อมต่อฉันได้รับการตรวจสอบ แต่ไม่พบแอปอื่น ๆ ผู้ใช้หรือไม่ - spids ภายในโดยใช้บัญชี sa) คำถามเล็กน้อย: คำถามที่ 1: การเปลี่ยนรหัสผ่าน sa ต้องมีการรีสตาร์ท SQL หรือไม่ ฉันพบการอ้างอิงบางอย่างที่บอกว่าจำเป็นต้องเริ่มบริการ SQL ใหม่หลังจากเปลี่ยนรหัสผ่านบัญชี sa: DBA SE: การเปลี่ยนรหัสผ่าน sa SQLAuthority: เปลี่ยนรหัสผ่านของการเข้าสู่ระบบ SA โดยใช้ Studio การจัดการ มันเป็นเรื่องจริงเหรอ? หรือเฉพาะในกรณีที่ฉันเปลี่ยนโหมดการตรวจสอบสิทธิ์ หรือเฉพาะถ้าฉันเข้าสู่ระบบเป็นประจำเป็น …


2
อะไรคือสิทธิพิเศษที่สมเหตุสมผลในการให้สิทธิ์ผู้ใช้ทั่วไป? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันพบรายการสิทธิพิเศษให้โดย MySQLจะเป็นบิตครอบงำ ฉันไม่แน่ใจว่าใครควรได้รับสิทธิพิเศษอะไรบ้าง ในใจของฉันมีผู้ใช้ทั่วไปสามคนสำหรับสถานการณ์ของฉัน: root developer application rootเป็นการอธิบายตนเอง สำหรับdeveloperผู้ใช้นี้จะต้องสามารถเข้าถึงฐานข้อมูลใด ๆ ได้อย่างง่ายดายทำการปรับเปลี่ยนเป็นต้นสำหรับผู้เริ่มฉันตั้งค่าผู้ใช้นี้เป็นชุดสิทธิ์นี้: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON applicationมีชุดที่ จำกัด ยิ่งขึ้น …

4
มันเป็นการดีที่จะใช้บัญชีฐานข้อมูลที่แตกต่างกันสำหรับผู้ใช้แอปพลิเคชันแต่ละคนหรือไม่?
แอปพลิเคชันที่ฉันเคยใช้เป็นเซิร์ฟเวอร์และใช้บัญชีฐานข้อมูลเดียวสำหรับผู้ใช้จำนวนมากโดยมีรหัสแอปพลิเคชันที่ควบคุมสิ่งที่ผู้ใช้สามารถทำได้หรือผู้ใช้รายเดียว มีแอปพลิเคชันทางธุรกิจที่ซับซ้อนที่ประสบความสำเร็จที่แต่ละคนต้องการบัญชีฐานข้อมูลของตนเองหรือไม่และเซิร์ฟเวอร์ฐานข้อมูลนั้นใช้เพื่อบังคับใช้กฎนโยบายเกี่ยวกับสิ่งที่ผู้ใช้แต่ละคนควรได้รับอนุญาตและไม่ได้รับอนุญาตให้ทำ ฉันกำลังคิดเกี่ยวกับแอปพลิเคชันที่มีคนจำนวนมากให้ข้อมูลในฐานข้อมูลเดียวและสามารถเข้าถึงข้อมูลที่เก็บโดยผู้อื่นเช่นเพื่อนร่วมงานในองค์กรที่ทุกคนต้องเข้าถึงระเบียนลูกค้า ยังมีชื่อสำหรับการตั้งค่าประเภทนี้หรือไม่?
13 security 

3
จำกัด ผู้ใช้ให้คัดลอกเฉพาะการสำรองข้อมูล
ฉันต้องการปรับใช้การจัดส่งบันทึกในสภาพแวดล้อมการผลิตของฉัน นี่จะหมายความว่าฉันจะต้องจัดการกลุ่มการสำรองข้อมูลซึ่งอาจถูกรบกวนโดยผู้ที่สำรองข้อมูลเพื่อฟื้นฟูสภาพแวดล้อมการพัฒนา หากฉันมีความล้มเหลวและต้องการใช้การสำรองข้อมูลบันทึกเพื่อคืนค่าสู่จุดในเวลาที่ฉันจะต้องสำรองข้อมูลโดยนักพัฒนา สิ่งนี้จะไม่เกิดขึ้นหากนักพัฒนาซอฟต์แวร์ใช้เฉพาะการสำรองข้อมูล COPY เท่านั้น ดังนั้นคำถามของฉันคือมีวิธี จำกัด ผู้ใช้ให้สามารถสำรองข้อมูล COPY เท่านั้นหรือไม่

2
ทำความเข้าใจกับการเข้ารหัสและสำรองข้อมูล MS SQL Server
ดังนั้นฉันจึงถามในการแชทเกี่ยวกับความปลอดภัยของไฟล์สำรองของ SQL Server ฉันบอกว่าหากผู้โจมตีสามารถเข้าถึงไฟล์. bak ที่ไม่ได้เข้ารหัสซึ่งพวกเขาสามารถเข้าถึงข้อมูลได้ ดังนั้นให้ดูที่สถานการณ์นี้: OPEN SYMMETRIC KEY MySymetricKey DECRYPTION BY CERTIFICATE MyCertificate สังเกตุ - ไม่มีรหัสผ่านที่นี่ แล้วเราเข้ารหัสตารางของเราโดย: UPDATE tbl1 SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name) GO ตอนนี้สมมติว่าแฮ็กเกอร์ได้รับbakไฟล์ของฉัน สิ่งที่เขาต้องทำเพื่อดูข้อมูล (ในคอมพิวเตอร์ & เซิร์ฟเวอร์ของเขาเอง) คือ: SELECT convert( NVARCHAR(max), decryptbykey(namePAss)) FROM tbl1 เขาจะยังสามารถเข้าถึงข้อมูลได้หรือไม่

2
การดำเนินการของ SQL Server เป็นปัญหา
EXECUTE ASฉันหายไปบางสิ่งบางอย่างในขณะที่พยายามที่จะทำให้การใช้งานขั้นตอนของฉันเก็บไว้ ขั้นตอนการจัดเก็บไว้อ่านข้อมูลจากมวลรวมและส่งผลให้ร้านค้าsource_dbtarget_db ตัว sp อยู่target_dbค่ะ ฉันมีการเข้าสู่ระบบโดยเฉพาะและแมปกับผู้ใช้ทั้งในsource_dbและtarget_dbสำหรับเจ้าของของ sp (ดังนั้นจึงมีผู้ใช้app_agentในsource_dbและในtarget_dbการเข้าสู่ระบบapp_agent) หากฉันเข้าสู่ระบบในฐานะapp_agentและดำเนินการ EXEC target_db.app_agent_schema.import_data ทุกอย่างทำงานได้ดี แต่ถ้าฉันเปลี่ยน ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`) และลองใช้งานมันมันจะพ่น เซิร์ฟเวอร์หลัก "app_agent" ไม่สามารถเข้าถึงฐานข้อมูล "source_db" ภายใต้บริบทความปลอดภัยปัจจุบัน ฉันใช้ SQL Server 2008 ใครช่วยชี้ให้เห็นข้อผิดพลาดของฉัน? ขอบคุณ อัปเดต หลังจากทำวิจัยบางอย่างฉันพบว่าการALTER DATABASE target_db SET TRUSTWORTHY ONแก้ปัญหา แต่ดูเหมือนจะไม่ใช่วิธีที่เหมาะสมสำหรับฉัน ...

2
ความปลอดภัยสำหรับ Application Developers ที่ทำงานกับ PL / SQL ใน Oracle
คุณจะจัดการกับการขาดสิทธิ์ระดับ Schema ใน Oracle ได้อย่างไร สถาปัตยกรรมความปลอดภัยของออราเคิลทำงานได้ดีสำหรับแอปพลิเคชันที่ต้องการเฉพาะสิทธิ์ระดับวัตถุและทำงานได้ดีสำหรับ DBA ที่ต้องการข้อ จำกัด เล็กน้อย อย่างไรก็ตามดูเหมือนว่าจะมีช่องโหว่ขนาดใหญ่ในสถาปัตยกรรมสำหรับโปรแกรมเมอร์ที่ทำการพัฒนาด้วยแอพพลิเคชั่นส่วนหน้าและ PL / SQL ในหลายสคีมา นี่คือตัวเลือกของฉันบางส่วนที่มีข้อเสีย: ทำให้แต่ละโปรแกรมเมอร์ทำการพัฒนาในสคีมาของตนเอง DBA จะให้สิทธิพิเศษระดับวัตถุแก่โปรแกรมเมอร์ที่ต้องการ การพัฒนาบรรจุภัณฑ์ใด ๆ จะต้องทำโดย DBA ข้อเสียที่สำคัญคือโปรแกรมเมอร์จะใช้ฐานข้อมูลเช่น bit bucket เพื่อลดความเสียหายของประสิทธิภาพของฐานข้อมูล ฉันต้องการโปรแกรมเมอร์ที่จะพัฒนาในฐานข้อมูล แต่วิธีนี้จะทำให้หมดกำลังใจอย่างมาก ให้ชื่อผู้ใช้ / รหัสผ่านของโปรแกรมเมอร์แก่ schema ที่ต้องการพัฒนามากกว่าสิบตัวอนุญาตให้สคีมาของแอปพลิเคชันเหล่านี้เพื่อสร้างโพรซีเดอร์ตารางและอื่น ๆ ข้อเสียของวิธีการนี้คือโปรแกรมเมอร์ต้องดูแลการเข้าสู่ระบบหลายครั้ง ไม่ค่อยเข้าสู่ระบบในฐานะตัวเอง การพัฒนาข้ามสคีก็ยากเช่นกัน ให้สิทธิการพิสูจน์ตัวตนพร็อกซีโปรแกรมเมอร์แก่แต่ละสคีมาที่ต้องพัฒนา สิ่งนี้ทำให้พวกเขาล็อกอินด้วยตนเองโดยไม่ต้องให้สิทธิพิเศษนอกเหนือจากสิทธิ์พร็อกซี ข้อเสียรวมถึงโปรแกรมเมอร์ที่ต้องรักษาการเชื่อมต่อแยกกันสำหรับแต่ละสคีมาที่พร็อกซีสำหรับการพัฒนาข้ามสคีมานั้นยุ่งยากกว่าเนื่องจากการเชื่อมต่อจะต้องมีการเปลี่ยนแปลงอยู่ตลอดเวลาและแพ็คเกจที่ใช้การเชื่อมโยงฐานข้อมูลสาธารณะ ให้สิทธิ์ DBA สำหรับโปรแกรมเมอร์แต่ละคน - ข้อเสียนี่คือความปลอดภัย ไม่มีโปรแกรมเมอร์สคีมาสามารถถูกเก็บออกจากสคีมาใด ๆ และโปรแกรมเมอร์ใด ๆ …

3
ตรวจสอบว่าการตรวจสอบโหมดผสมถูกเปิดใช้งานโดยไม่ต้องเข้าสู่ระบบหรือไม่
เป็นไปได้ใน SQL Server เพื่อตรวจสอบว่ามีการเปิดใช้งานการรับรองความถูกต้องของโหมดผสมโดยไม่ต้องเข้าสู่ระบบ SQL Server หรือไม่

2
ฉันจะแมปเข้าสู่ระบบฐานข้อมูลโดยใช้ T-SQL (ไม่ใช่ SSMS) ได้อย่างไร
ฉันกำลังเขียนโปรแกรมที่กำหนดให้ฉันต้องกำหนดสิทธิ์ทั้งหมดและทุกอย่างเป็นรหัส ฉันติดค้างอยู่ในส่วนนี้: ฉันแค่ต้องการทำเทียบเท่ากับการคลิกกล่องเล็ก ๆ ใต้ "แผนที่" สำหรับฐานข้อมูล msdb และกำหนดผู้ใช้นั้นให้กับบทบาท SqlAgentUser ฉันต้องการให้ผู้ใช้งานสามารถเพิ่ม / แก้ไขงาน SQL Server Agent ได้ ฉันสามารถตั้งค่าได้อย่างถูกต้องโดยใช้ SSMS แต่ฉันทำไม่ได้ตลอดชีวิตว่าจะทำอย่างไรใน SQL แบบดิบ ฉันค้นหาALTER LOGIN แล้วแต่ไม่เห็นสิ่งใดที่ต้องการ ฉันสงสัยว่าฉันไม่ทราบเงื่อนไขที่ถูกต้องสำหรับ Google ปกติฉันจะไม่ทำสิ่งนี้ ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!

1
ฟังก์ชันใดที่เสนอราคาตัวระบุใน dynamic-sql กับ SQL Server
วิธีการ SQL Server ของตัวระบุการอ้างอิงอย่างปลอดภัยสำหรับการสร้าง sql แบบไดนามิกคืออะไร MySQL มี quote_identifier PostgreSQL มี quote_ident ฉันจะมั่นใจได้อย่างไรว่าได้รับชื่อคอลัมน์ที่สร้างขึ้นแบบไดนามิกสำหรับคำสั่งที่สร้างขึ้นแบบไดนามิกว่าคอลัมน์นั้นไม่ใช่การโจมตี SQL-injection สมมติว่าฉันมีคำสั่ง SQL SELECT [$col] FROM table; ซึ่งเป็นหลักเช่นเดียวกับ 'SELECT [' + $col + '] FROM table;' จะหยุดการโจมตีฉีดอะไรที่ $col = "name] FROM sys.objects; \r\n DROP TABLE my.accounts; \r\n\ --"; ที่เกิดขึ้นใน SELECT [name] FROM sys.objects; DROP TABLE my.accounts; -- …

3
DROP USER ใช้เวลานานเกินไปเมื่อมีผู้ใช้จำนวนมาก
บนอินสแตนซ์ SQL Server 2014 ที่มี RAM และดิสก์เร็วพอมีผู้ใช้มากกว่า 160 รายที่สามารถเข้าถึงฐานข้อมูล ด้วยเหตุผลบางอย่างที่ไม่รู้จักกับฉันการเรียกใช้คำสั่งDROP USER [username]ในฐานข้อมูลนี้ใช้เวลาสูงสุด 5 วินาทีต่อผู้ใช้หนึ่งราย การกำหนดผู้ใช้ใหม่ให้เข้าสู่ระบบและกู้คืนสิทธิ์ของพวกเขานั้นรวดเร็วมาก ภายในบริบทของการรีเฟรชฐานข้อมูล DEV จากการผลิตฉันต้องปล่อยและสร้างผู้ใช้ฐานข้อมูลทั้งหมดใหม่ ดังนั้นใช่ปล่อยผู้ใช้ฐานข้อมูลและสร้างพวกเขาเป็นสิ่งที่จำเป็น ฉันจะเร่งความเร็วDROP USERคำสั่งได้อย่างไร โปรดจำไว้ว่าฉันต้องเรียกใช้เกิน 160 ครั้งสำหรับอินสแตนซ์ที่ฉันเขียน นี่คือ SQL ที่ฉันใช้: DECLARE drop_user_cur CURSOR FOR SELECT name FROM #drop_users OPEN drop_user_cur FETCH NEXT FROM drop_user_cur INTO @user WHILE @@FETCH_STATUS = 0 BEGIN SET @sql …

3
การตรวจสอบนโยบายรหัสผ่านเกี่ยวกับผู้ใช้ที่มีอยู่
ฉันเพิ่งเข้ามาในสภาพแวดล้อมที่เข้าสู่ระบบฐานข้อมูลจำนวนมากไม่ได้enforce_password_policyเปิดใช้งานการตั้งค่าสถานะ การตรวจสอบที่กำลังจะมาถึงนั้นจำเป็นต้องทำการยืนยันรหัสผ่านของการเข้าสู่ระบบเหล่านี้ ฉันใช้แบบสอบถามต่อไปนี้เพื่อรับรายการการเข้าสู่ระบบและไม่ว่าธงจะเปิดหรือปิด select @@SERVERNAME as servername, name, IS_SRVROLEMEMBER('sysadmin', name) as SYSADMIN, type_desc, create_date, is_policy_checked, is_disabled, password_hash, PWDCOMPARE(name, password_hash) as UsernameAsPassword FROM sys.sql_logins อย่างไรก็ตามสิ่งนี้ไม่ได้บอกฉันว่ารหัสผ่านนั้นเป็นไปตามนโยบายรหัสผ่านจริงหรือไม่เนื่องจากการตั้งค่าสถานะนั้นเกี่ยวข้องเฉพาะเมื่อสร้างผู้ใช้ มีวิธีรู้จักทดสอบผู้ใช้ปัจจุบันสำหรับการปฏิบัติตามนโยบายรหัสผ่านหรือไม่ ฉันไม่สามารถเข้าถึงรหัสผ่านเก่าได้และฉันต้องการวิธีที่ไม่ต้องการรหัสผ่าน

2
ความเสี่ยงด้านความปลอดภัยหรือประสิทธิภาพการใช้ SQL CLR [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา มีความเสี่ยงด้านความปลอดภัยหรือประสิทธิภาพโดยเฉพาะอย่างยิ่งในการใช้ CLR ใน SQL Server หรือไม่?

2
ขั้นตอนงาน SQL ทำงานเป็นบัญชี sql ที่แตกต่างกัน
ฉันอยากรู้วิธีตั้งค่าขั้นตอนงาน SQL เพื่อดำเนินการเป็นบัญชีเข้าสู่ระบบ SQL อื่น ดูเหมือนว่าฉันจะต้องตั้งค่าบัญชีพร็อกซีใหม่ซึ่งต้องใช้ข้อมูลรับรองที่มีอยู่ เมื่อฉันสร้างข้อมูลรับรองตัวเลือกเดียวของฉันคือการใช้ข้อมูลรับรองเข้าสู่ระบบ Windows งานที่ฉันพยายามเรียกใช้อยู่ด้านล่าง มีคำสั่งเพิ่มเติมอื่น ๆ แต่เมื่อฉันตั้งค่าขั้นตอนงานให้ทำงานเป็นล็อกอิน SQL มันล้มเหลว insert into [dbo].[TableA] SELECT ss.[Ref_ID] ,mm.[studentID] ,mm.[studentPersonID] ,mm.[studentFirstname] FROM [dbo].[TableB] mm left outer join [dbo].[TableC] ss on ss.parentPersonID=mm.parentPersonID and mm.studentPersonID = ss.studentPersonID where ss.Ref_ID is not null; เมื่อสิ่งนี้ถูกเรียกใช้ผ่าน SQL Job Step มันจะล้มเหลว Executed as user: an_admin_account. …

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