দ্রুত সংস্করণ:
কোনও ডাটাবেস মালিককে এই ডাটাবেসে টেবিলগুলি অ্যাক্সেস করার অনুমতি দেওয়ার জন্য আমার কোন আদেশ জারি করা উচিত এবং এটি কি সেই মালিকের অ্যাকাউন্ট থেকে করা যেতে পারে?
দীর্ঘ সংস্করণ:
আমি আরডিএসে একটি ডাটাবেস তৈরি করছি। আমার একটি 'রুট' ব্যবহারকারী আছে যা আমি অ্যামাজনের সাথে কনফিগার করেছি।
অ্যামাজন স্বয়ংক্রিয়ভাবে 'rds_superuser' গ্রুপের ভূমিকা তৈরি করে যা অত্যন্ত সুবিধাজনক, তবে আসলে কোনও সুপারভাইজার নয়।
আমি নিম্নলিখিত হিসাবে অ্যাপ্লিকেশনটির জন্য একটি ডাটাবেস এবং ব্যবহারকারী তৈরি করছি:
create database master_integration;
CREATE ROLE master_application LOGIN ENCRYPTED PASSWORD '...' VALID UNTIL 'infinity';
GRANT ALL ON DATABASE master_integration TO GROUP rds_superuser WITH GRANT OPTION;
GRANT ALL ON DATABASE master_integration TO GROUP master_application;
\c master_integration;
ALTER DEFAULT PRIVILEGES GRANT INSERT, SELECT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER ON TABLES TO rds_superuser;
আমার কীভাবে এটি পরিচালনা করা উচিত সে সম্পর্কে ক্রেগ রিংারের পরামর্শ প্রতিফলিত করার জন্য আমি এই স্ক্রিপ্টটি আপডেট করেছি।
অ্যাপ্লিকেশনটি যখন সংযুক্ত হয় (মাস্টার_প্লিকেশন শংসাপত্রগুলির সাথে) এটি সারণীগুলি তৈরি করে (এবং তাই মালিকানাধীন)।
আমার সমস্যাটি হ'ল আমি অনুসন্ধান চালাতে আমার প্রশাসনিক (মূল) লগ ইন ব্যবহার করতে পারি না কারণ সেই ব্যবহারকারীর টেবিলে কোনও সুবিধা নেই privile
আমি অ্যাপ্লিকেশন অ্যাকাউন্ট থেকে নিম্নলিখিতটি চালিয়ে আগে এটি সমাধান করতে সক্ষম হয়েছি:
GRANT ALL privileges ON ALL TABLES IN SCHEMA public to rds_superuser;
তবে প্রশাসনিক ব্যবহারকারীর কাছে অধস্তন ব্যবহারকারী অনুদানের মালিকানা ফিরিয়ে দেওয়া হ্যাকি বলে মনে হচ্ছে।
সুতরাং ... এমন কোনও আদেশ আছে যা আমি অ্যাপ্লিকেশন থেকে টেবিলগুলি তৈরি করার আগে বা তার পরে চালাতে পারি যা নিশ্চিত করে যে ডাটাবেসের মালিক ডাটাবেসের মধ্যে থাকা সারণীগুলি অ্যাক্সেস করতে পারে?
পরিবর্তিত ডিফল্ট সুবিধাগুলি পুনরায় চেষ্টা করার পরে আপডেট করুন ...
এটি এখনও টেবিলগুলিতে অ্যাক্সেস দেয় না; আমি এটি অন্য কোথাও প্রস্তাবিত দেখছি এবং এটি পুরোপুরি অর্থপূর্ণ, তবে এটি আমার পক্ষে কাজ করছে না। একটি পিএসকিএল শেল থেকে:
master_integration=> \ddp
Default access privileges
Owner | Schema | Type | Access privileges
------------------+--------+-------+-------------------------------------------
integration_root | | table | integration_root=arwdDxt/integration_root+
| | | rds_superuser=arwdDxt/integration_root
(1 row)
master_integration=> \dp users
Access privileges
Schema | Name | Type | Access privileges | Column access privileges
--------+-------+-------+-------------------+--------------------------
public | users | table | |
(1 row)
ইন্টিগ্রেশন_রুট হ'ল আমার অতি ব্যবহারকারী-ইশ ব্যবহারকারী এবং ব্যবহারকারীরা আমার ডাটাবেসের মধ্যে একটি সারণী।
হালনাগাদ
আমাজনের একজনের কাছ থেকে আমি মোটামুটি অকেজো সাড়া পেয়েছি।
তারা আমাকে মাস্টার_প্লিকেশন লগইন থেকে ALTER DEIFULT PRIVILEGES এ কল করতে বলেছে। যদিও এটি সম্ভবত কার্যকর হবে, এটি আমার প্রশ্নের উত্তর দেবে না (যা আমি সম্পূর্ণভাবে rds_superuser অ্যাকাউন্ট থেকে এটি করতে পারি)।
আমি তাদের এটি পরিষ্কার করতে বললাম এবং তারা চলে গেলেন।