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

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

3
วิธีการรีเฟรชกลุ่มความปลอดภัย AD บนการอนุญาต SQL Server
ฉันใช้ SQL Server 2008 บน Small Business Server 2003 ลูกค้าใช้ WinXP ฉันเพิ่มผู้ใช้ไปยัง Active Directory Security Group; เหตุใดผู้ใช้นี้ไม่สามารถเข้าถึงฐานข้อมูลได้ทันที ดูเหมือนว่ามีความล่าช้าก่อนที่ผู้ใช้จะรู้จักใน SQL Server ฉันใช้ AD Security Groups สำหรับการอนุญาตอย่างชัดแจ้งเพื่อที่ฉันไม่จำเป็นต้องเพิ่มผู้ใช้รายบุคคลใน SQL Server อย่างมีประสิทธิภาพฉันไม่จำเป็นต้องทำอะไรนอกจากเพิ่มผู้ใช้ในกลุ่มความปลอดภัย AD เพื่อให้สิทธิ์การเข้าถึง แต่ด้วยเหตุผลบางอย่างเซิร์ฟเวอร์ sql ไม่รู้จักการเพิ่มในทันที ฉันเคยเห็นนี่มาหลายครั้งแล้ว ฉันเพิ่มผู้ใช้ในกลุ่ม แต่ผู้ใช้นั้นไม่สามารถเข้าถึงข้อมูลได้จนกว่าจะถึงวันถัดไป ดูเหมือนว่าจะไม่สืบค้น Active Directory แบบเรียลไทม์ คุณช่วยยืนยันได้มั้ย ฉันต้องทำอย่างไรเพื่อให้เซิร์ฟเวอร์ SQL "รีเฟรช" รายชื่อผู้ใช้จาก Active Directory

2
อนุญาตให้ผู้ใช้ทำอะไรก็ได้ภายในสคีมาของเขาเอง แต่ไม่ต้องสร้างหรือวางสคีมาเอง
ฉันสร้างสคีมาใน SQL Azure และได้รับอนุญาตจากบทบาทฐานข้อมูลต่อไปนี้: CREATE ROLE myrole AUTHORIZATION dbo; EXEC sp_addrolemember 'myrole', 'myuser'; CREATE SCHEMA myschema AUTHORIZATION dbo; GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, UPDATE, VIEW DEFINITION ON SCHEMA::myschema TO myrole; GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole; ผ่านการอนุญาตที่กำหนดไว้ข้างต้นmyuserสามารถสร้าง / วางสคีมาของเขาเองเพื่อที่จะเอาชนะปัญหาที่ฉันลองใช้สิทธิ์ ALTER ANY SCHEMA …

3
ค้นหาวัตถุที่เชื่อมโยงกับบทบาท PostgreSQL
บางครั้งฉันสร้างผู้ใช้ PostgreSQL ชื่อuser1 (PostgreSQL 9.4.9) ฉันต้องการจะลบผู้ใช้รายนี้ ดังนั้นฉันจะยกเลิกการอนุญาตทั้งหมดในตารางลำดับฟังก์ชันสิทธิ์เริ่มต้นและความเป็นเจ้าของด้วย: ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON SEQUENCES FROM user1; ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON TABLES FROM user1; ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE ALL ON FUNCTIONS FROM user1; REVOKE ALL ON ALL SEQUENCES IN SCHEMA …

2
ปฏิเสธการอนุญาตสำหรับความสัมพันธ์ <table>
ฉันใช้ SQL ต่อไปนี้เป็น psql: CREATE USER bspu LOGIN; CREATE DATABASE bsp OWNER bspu; GRANT ALL PRIVILEGES ON DATABASE bsp TO bspu; \c bsp CREATE TABLE users ( id SERIAL PRIMARY KEY, client_id VARCHAR(20) NOT NULL, api_key VARCHAR(100) NOT NULL, api_secret VARCHAR(100) NOT NULL, auth_token VARCHAR(128) NOT NULL ); เมื่อฉันเข้าสู่ระบบเป็นbspuและพยายามค้นหาusersตารางฉันได้รับข้อผิดพลาด: permission …

3
การให้สิทธิ์ ALTER TABLE ได้รับอันตรายอย่างไร
ลองนึกภาพสถานการณ์ต่อไปนี้ CREATE DATABASE test GO USE test; CREATE TABLE dbo.Customer ( CustomerId INT, Email VARCHAR(100), SensitiveData VARCHAR(20) ); INSERT INTO dbo.Customer VALUES (1,'abc@foo.com','12346789'); ณ จุดหนึ่งกระบวนการ ETL จะถูกเขียนที่ดำเนินการบางกิจกรรมในtestฐานข้อมูล CREATE USER etlUser WITHOUT LOGIN; /*For demo purposes*/ CREATE TABLE dbo.StagingTable ( StagingTableId INT, SomeData VARCHAR(100), ) GRANT UPDATE,INSERT,DELETE,SELECT,ALTER ON dbo.StagingTable TO etlUser; …

3
SQL Server: ให้สิทธิ์การเข้าถึงแก่ผู้ใช้ในมุมมองและไม่ได้อยู่ในตาราง
ฉันมีอินสแตนซ์ SQL Server 2012 ที่มีฐานข้อมูลน้อย ในหนึ่งในนั้นฉันสร้างมุมมองที่เลือกตารางมากกว่าฐานข้อมูล ฉันต้องการให้ผู้ใช้สามารถเลือกมุมมองนั้น แต่ต้องไม่เลือกตาราง มุมมองถูกสร้างขึ้นอย่างแน่นอนเนื่องจากผู้ใช้ไม่สามารถเลือกตาราง ฉันอ่าน/programming/368414/grant-select-on-a-view-not-base-tableและhttp://msdn.microsoft.com/en-us/library/ms188676 aspxและยังคงไม่ทำงาน หากฉันทำGRANT SELECT TABLE TO USERตารางทั้งหมดผู้ใช้สามารถเลือกมุมมองได้ แต่ถ้าฉันเพิกถอนตารางใด ๆ ก็ล้มเหลว นี่ควรเป็นขั้นตอนง่าย ๆ ที่จะทำ แต่ฉันมีปัญหาในการทำให้มันใช้งานได้ ฉันเคยเห็นมันเกิดขึ้นมาก่อน (เจ้าของอินสแตนซ์ให้ฉันเข้าถึงมุมมองและไม่ได้ทำกับตารางของมัน) แต่ฉันไม่สามารถทำได้หรือหาคนที่รู้วิธี ใครช่วยสอนให้ฉันเกี่ยวกับวิธีการทำมันหรือตัวอย่างรหัส? เมื่อผู้ใช้SELECTsมุมมองที่ฉันได้รับข้อความ: ได้รับอนุญาต SELECT ถูกปฏิเสธบนวัตถุ&lt;TABLE&gt;ฐานข้อมูลคี&lt;DB&gt;dbo ถ้าฉันให้สิทธิ์เลือกในตารางนั้นข้อความแสดงข้อผิดพลาดจะเปลี่ยนชื่อตารางเป็นตารางอื่นที่มุมมองอ่าน

3
db_owner ไม่สามารถปล่อยฐานข้อมูล - ข้อผิดพลาด 615, SQL Server
ฉันมีฐานข้อมูล SQL Server 2012 ที่ทำงานบน amazon EC2 ฉันได้สร้างผู้ใช้เพื่อให้สามารถสร้างแก้ไขและวางฐานข้อมูลได้ ฉันให้ผู้ใช้ใหม่ด้วยdbcreatorบทบาทเซิร์ฟเวอร์ ผู้ใช้ของฉันสามารถเชื่อมต่อจากระยะไกลและรันcreate database foo;คำสั่งได้สำเร็จ แต่เมื่อผู้ใช้พยายามวางฐานข้อมูลอีกครั้งด้วยdrop database foo;คำสั่งล้มเหลวด้วยข้อผิดพลาดดังต่อไปนี้: Warning: Fatal error 615 occurred at Feb 1 2014 5:15PM. Note the error and time, and contact your system administrator. ErrorCode: 21 แม้ว่าฐานข้อมูลที่เลือกคือmaster(ดังนั้นฉันไม่คิดว่ามันเป็นเพราะมีการใช้งาน) และคำสั่งสำเร็จเมื่อฉันเรียกใช้อีกครั้งในฐานะผู้ใช้ที่เป็นผู้ดูแลระบบ ฉันตรวจสอบฐานข้อมูลที่สร้างขึ้นใหม่และผู้ใช้ของฉันได้รับมอบหมายdb_ownerบทบาทในฐานข้อมูลตามที่ฉันคาดไว้ดังนั้นความเข้าใจของฉันคือสิ่งนี้ควรเป็นสิทธิ์ที่เพียงพอสำหรับผู้ใช้นั้นเพื่อให้สามารถวางฐานข้อมูลที่เพิ่งสร้างขึ้นได้ ตามที่http://technet.microsoft.com/en-us/library/ms178613.aspxบทบาท db_owner ควรมีสิทธิ์เพียงพอ "ต้องการสิทธิ์การควบคุมบนฐานข้อมูลหรือแก้ไขสิทธิ์ฐานข้อมูลใด ๆ หรือการเป็นสมาชิกในบทบาทฐานข้อมูลคงที่ db_owner" ฉันค้นหาข้อผิดพลาด 615 และพบว่า …

1
การแม็พการล็อกอินเซิร์ฟเวอร์หลายครั้งกับผู้ใช้ฐานข้อมูลเดียว
นี่ดูเหมือนจะเป็นคำถามที่โง่ แต่ก็มีงานวิจัยบางอย่างที่ฉันไม่สามารถหาข้อมูลเกี่ยวกับเรื่องนี้ได้เท่านั้น (อาจเป็นเพราะการใช้คำศัพท์ที่ผิด) เป็นไปได้หรือไม่ที่จะเข้าสู่ระบบเซิร์ฟเวอร์หลายเครื่อง (การตรวจสอบเซิร์ฟเวอร์ sql) ไปยังผู้ใช้ฐานข้อมูลเดียว (ซึ่งมีสิทธิ์ที่กำหนดโดยการเป็นสมาชิกของบทบาทฐานข้อมูล)? ฉันมีการลงชื่อเข้าใช้ sql หลายสิบครั้ง (การรับรองความถูกต้องของเซิร์ฟเวอร์ sql) ซึ่งจำเป็นต้องอ่านการตั้งค่าเดียวจากฐานข้อมูลกลางและฉันควรแมปการเข้าสู่ระบบเหล่านี้ทั้งหมดกับผู้ใช้ฐานข้อมูลเดียวในฐานข้อมูลเป้าหมาย ถ้าใช่จะมีไวยากรณ์ T-SQL ที่ถูกต้องอะไรบ้าง

3
มีวิธีหาใครเปลี่ยนรหัสผ่านสำหรับการเข้าสู่ระบบหรือไม่?
ฉันพยายามค้นหาว่าใครเปลี่ยนรหัสผ่านสำหรับการเข้าสู่ระบบใน SQL Server 2008 R2 ฉันได้ตรวจสอบการติดตามเริ่มต้นแล้วและไม่ได้บันทึกเหตุการณ์นั้น การติดตามเริ่มต้นจะรวมถึงเหตุการณ์ที่เกี่ยวข้องกับความปลอดภัย: /* Audit Add DB user event Audit Add login to server role event Audit Add Member to DB role event Audit Add Role event Audit Add login event Audit Backup/Restore event Audit Change Database owner Audit DBCC event Audit Database Scope GDR event …

1
สิทธิพิเศษที่จำเป็นสำหรับการใช้งานฟังก์ชั่นทริกเกอร์ใน PostgreSQL 8.4 มีอะไรบ้าง?
สิทธิพิเศษที่จำเป็นสำหรับการใช้งานฟังก์ชั่นทริกเกอร์ใน PostgreSQL 8.4 มีอะไรบ้าง? ดูเหมือนว่าสิทธิพิเศษที่กำหนดให้กับบทบาทนั้นไม่สำคัญสำหรับการเรียกใช้ฟังก์ชันทริกเกอร์ ฉันคิดว่าฉันได้เห็นบางวันว่าสิทธิ์ที่จำเป็นในการเรียกใช้ฟังก์ชันทริกเกอร์เป็นสิทธิ์ดำเนินการ แต่สำหรับเจ้าของตารางไม่ใช่บทบาทจริงที่ดำเนินการแอ็คชั่นซึ่งยิงทริกเกอร์ที่เรียกฟังก์ชันทริกเกอร์ ฉันไม่พบส่วนเอกสารที่อธิบายจุดนั้นมีความช่วยเหลืออะไรบ้าง?

1
จะอนุญาตให้ใช้งานโพรซีเดอร์ที่เก็บไว้ แต่ไม่ได้เขียนได้อย่างไร
ฉันต้องการตั้งค่าผู้ใช้ "อ่าน" บนอินสแตนซ์ SQL Server 2012 ของฉัน ฉันต้องการอนุญาตให้เขามีสิทธิ์ดำเนินการกระบวนงานที่เก็บไว้หรือฟังก์ชันหรือคำสั่ง SQL โดยตรงซึ่งดึงข้อมูลจากตารางและมุมมองทั้งหมด แต่ไม่อัปเดตหรือแทรก (เช่นอ่านอะไรและเขียนอะไร) ฉันสามารถตั้งค่านี้ได้โดยไม่ให้สิทธิ์เฉพาะกับแต่ละฟังก์ชั่นหรือขั้นตอนการจัดเก็บตามชื่อ แต่ให้สิทธิ์การดำเนินการที่ถูกต้องกับฟังก์ชั่นใด ๆ หรือขั้นตอนการจัดเก็บ จะมีอะไรเปลี่ยนแปลงไหมถ้าฉันใช้ SQL Server 2008 แทน ชี้แจงและเพิ่มเติม: หากขั้นตอนการจัดเก็บเปลี่ยนแปลงข้อมูลผู้ใช้ควรได้รับข้อความแสดงข้อผิดพลาด (ปฏิเสธการแก้ไขหรือปฏิเสธการเข้าถึงขั้นตอนการจัดเก็บทั้งหมด) หากวิธีแก้ไขที่เป็นไปได้เกี่ยวข้องกับการปฏิเสธสิทธิ์ฉันจะไม่ให้สิทธิ์บางอย่างแทนการปฏิเสธได้หรือไม่ สามารถใช้การปฏิเสธกับตารางทั้งหมดมุมมอง ฯลฯ (มีอยู่ทั้งในปัจจุบันและในอนาคต) ในฐานข้อมูลในคำสั่งเดียวได้หรือไม่

2
การรับ“ สิทธิ์ SELECT ถูกปฏิเสธบนวัตถุ” แม้ว่าจะได้รับอนุญาตแล้วก็ตาม
ฉันเป็นโปรแกรมเมอร์ไม่ใช่ dba ... ฉันรู้ว่าเพียงพอที่จะเป็นอันตราย ฉันได้รับมรดกฐานข้อมูลด้วยผู้ใช้ดั้งเดิมที่เป็น db_owner สำหรับฐานข้อมูล เราไม่สามารถปรับการอนุญาตของผู้ใช้นี้สำหรับตาราง schema ที่มีอยู่ ฯลฯ ด้วยเหตุผลทางธุรกิจ แต่มีการสร้างตารางใหม่บางตารางขึ้นและฉันต้องการให้ผู้ใช้นี้มีสิทธิ์เข้าถึง SELECT เหล่านั้นเท่านั้น มีการตั้งค่าการอนุญาตสำหรับผู้ใช้นี้สำหรับตารางเหล่านี้เพื่อให้ทุกอย่างถูกปฏิเสธยกเว้น SELECT ซึ่งตั้งค่าเป็น GRANT แต่เมื่อผู้ใช้นี้ (dbadmin) พยายามทำการเลือกบนหนึ่งในตารางเหล่านี้ (AccountingAudit) ข้อผิดพลาดนี้เกิดขึ้น: The SELECT permission was denied on the object 'AccountingAudit', database 'billing', schema 'dbo'. ฉันใช้ SQL นี้เพื่อลองดูว่ามีการตั้งค่าการอนุญาตสำหรับตาราง / ผู้ใช้นี้: select object_name(major_id) as object, user_name(grantee_principal_id) as grantee, user_name(grantor_principal_id) …

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

5
สิทธิ์ของผู้ใช้สับสนขึ้นหลังจากการสำรองข้อมูล -> การดำเนินการคืนค่า
ฉันต้องย้ายฐานข้อมูล SQL Server 2008 หลายตัวไปยังเซิร์ฟเวอร์ db ใหม่ของเราดังนั้นฉันจึงสำรองข้อมูลทั้งหมด (เป็นไฟล์. bak) คัดลอกไฟล์เหล่านี้ไปยังกล่องใหม่และเรียกคืนพวกเขา (ทั้งหมดทำได้โดยใช้ SQL Management Studio) ทุกอย่างก็โอเค แต่ตอนนี้ฉันพบว่าฉันไม่สามารถลงชื่อเข้าใช้ฐานข้อมูลใด ๆ โดยใช้บัญชี SQL Server ที่ยังคงทำงานบน RDBMS เก่าได้ การเข้าสู่ระบบที่ได้รับการรับรองความถูกต้องของ windows ของฉันยังคงทำงานได้ดี ฉันมีความคิดนี้ผู้ใช้และสิทธิ์ทั้งหมดจะถูกทำซ้ำอย่างราบรื่นบนเซิร์ฟเวอร์ฐานข้อมูลใหม่ แต่ดูเหมือนว่ามีบางอย่างผิดปกติ ฉันขอขอบคุณความเห็น / ข้อเสนอแนะ / ข้อเสนอการช่วยเหลือ ;-)

5
วิธีปฏิเสธการเข้าถึง SQL Server เพื่อเข้าสู่ระบบบางอย่างผ่าน SSMS แต่อนุญาตผ่าน. Net SqlClient Data Provider
เรามีสถานการณ์ที่นักพัฒนาไม่ได้UPDATEรับอนุญาตใด ๆแต่พวกเขาทำงานกับแอปพลิเคชันและดูสตริงการเชื่อมต่อ -&gt; พวกเขารู้รหัสผ่านจากบัญชี SQL บางบัญชี (ตัวอย่างSQLLogin1) ที่มีสิทธิ์อัปเดต การดำเนินงานของเราในปัจจุบันยังไม่สมบูรณ์แบบและบางครั้งข้อมูลการผลิตจะต้องมีการแก้ไข (ยังไม่มี GUI สำหรับสิ่งนั้น) แทนที่จะติดต่อ DBA และขอให้เขาแก้ไขข้อมูลนักพัฒนาจะใช้บัญชี SQL (ไม่ถูกต้อง) SQLLogin1(ที่มีสิทธิ์ในการปรับเปลี่ยนข้อมูล) และเชื่อมต่อกับ SQL Server Management Studio เพื่อแก้ไขข้อมูลเอง DBA ไม่สามารถเปลี่ยนรหัสผ่านได้หากSQLLogin1ไม่มี Developer จะเห็นสตริงการเชื่อมต่อใหม่และรหัสผ่านใหม่เนื่องจากสตริงการเชื่อมต่อแอปพลิเคชันที่ใช้SQLLogin1นั้นดูแลโดยนักพัฒนา คำถาม: มีวิธีที่จะปฏิเสธการเข้าถึงการSQLLogin1เข้าสู่ระบบ SQL แต่ถ้ามันเชื่อมต่อผ่าน SSMS หรือไม่? ในเวลาเดียวกันหากSQLLogin1เชื่อมต่อผ่าน.Net SqlClient Data Provider( program_nameในsys.dm_exec_sessions) จะต้องได้รับอนุญาตให้เข้าสู่ระบบ วิธีนี้เราไม่ต้องการให้นักพัฒนาเชื่อมต่อผ่าน SSMS โดยใช้SQLLogin1ในขณะที่แอปพลิเคชันที่ใช้อยู่SQLLogin1จะยังคงสามารถเชื่อมต่อได้

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