පළමුව, විමසුම් ක්රියාත්මක කිරීම සඳහා දත්ත සමුදායට සම්බන්ධ වීමට ඔබට හැකි විය යුතුය. මෙය සාක්ෂාත් කරගත හැකිය
REVOKE CONNECT ON DATABASE your_database FROM PUBLIC;
GRANT CONNECT
ON DATABASE database_name
TO user_name;
මෙම REVOKEඅවශ්ය නිසා
PUBLIC යන ප්රධාන වචනයෙන් ඇඟවෙන්නේ පසුකාලීනව නිර්මාණය කළ හැකි ඒවා ඇතුළුව සියලු භූමිකාවන් සඳහා වරප්රසාද ලබා දිය යුතු බවයි. PUBLIC යනු සෑම විටම සියලු භූමිකාවන් ඇතුළත් වන ව්යංගයෙන් නිර්වචනය කරන ලද කණ්ඩායමක් ලෙස සිතිය හැකිය. ඕනෑම විශේෂිත කාර්යභාරයක් සඳහා එයට සෘජුවම ලබා දී ඇති වරප්රසාද එකතුව, එය දැනට සාමාජිකයෙකු වී ඇති ඕනෑම භූමිකාවක් සඳහා ලබා දී ඇති වරප්රසාද සහ මහජනතාවට ලබා දී ඇති වරප්රසාද එකතුවකි.
ඔබේ පරිශීලකයා ඩීඑම්එල් ප්රකාශයන්ට පමණක් සීමා කිරීමට ඔබට අවශ්ය නම්, ඔබට තව ටිකක් කළ යුතුව ඇත:
REVOKE ALL
ON ALL TABLES IN SCHEMA public
FROM PUBLIC;
GRANT SELECT, INSERT, UPDATE, DELETE
ON ALL TABLES IN SCHEMA public
TO user_name;
මේවා උපකල්පනය කරන්නේ ඔබට ඇත්තේ එක් ක්රමයක් පමණක් බවයි (එය පෙරනිමියෙන් 'පොදු' ලෙස නම් කර ඇත).
ජැක් ඩග්ලස් පෙන්වා දුන් පරිදි, ඉහත දක්වා ඇත්තේ දැනටමත් පවතින වගු සඳහා වරප්රසාද පමණි . අනාගත වගු සඳහා එයම සාක්ෂාත් කර ගැනීම සඳහා, ඔබට පෙරනිමි වරප්රසාද අර්ථ දැක්විය යුතුය :
ALTER DEFAULT PRIVILEGES
FOR ROLE some_role -- Alternatively "FOR USER"
IN SCHEMA public
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO user_name;
මෙන්න, some_roleවගු නිර්මාණය කරන භූමිකාවක් වන user_nameඅතර වරප්රසාද ලබා ගන්නා තැනැත්තා වේ. මෙය නිර්වචනය කරමින්, ඔබ some_roleඑහි සාමාජිකයෙකු ලෙස හෝ සාමාජිකයෙකු ලෙස ලොග් විය යුතුය .
අවසාන වශයෙන්, ඔබ අනුපිළිවෙල සඳහාද එයම කළ යුතුය (එය පෙන්වා දීම ගැන ප්ලේඩ්ෆෑන් හට ස්තූතියි) - මෙන්න එය USAGEඔබට අවශ්ය වරප්රසාදයයි.
FOR some_roleපසුව නිර්මාණය කරන ලද මගේ වගු සඳහා එය ක්රියාත්මක කිරීමට මා අතපසු වූ ප්රධාන කොටස විය. නමුත් මට ප්රවිෂ්ටsome_roleපරිපාලකpostgresපරිශීලකයා ලෙස විමසුම ක්රියාත්මක කළ හොත් එය ක්රියාත්මක විය .