Sql 检查用户在Postgres中的登录权限
如何检查某些用户是否具有登录权限? 我想显示当前登录权限,并允许其他用户启用或禁用它 差不多Sql 检查用户在Postgres中的登录权限,sql,postgresql,plpgsql,Sql,Postgresql,Plpgsql,如何检查某些用户是否具有登录权限? 我想显示当前登录权限,并允许其他用户启用或禁用它 差不多 IF pg_can_login('someuser') ALTER ROLE someuser NOLOGIN; ELSE ALTER ROLE someuser LOGIN; ENDIF 如何在SQL或plPgSQL中实现pg_can_登录(用户)?可通过 比如: DO $$ BEGIN IF (select rolcanlogin from pg_roles where rolname
IF pg_can_login('someuser')
ALTER ROLE someuser NOLOGIN;
ELSE
ALTER ROLE someuser LOGIN;
ENDIF
如何在SQL或plPgSQL中实现pg_can_登录(用户)?可通过 比如:
DO $$
BEGIN
IF (select rolcanlogin from pg_roles where rolname = 'aklaver') THEN
RAISE NOTICE 'yes';
ELSE
RAISE NOTICE 'no';
END IF;
END;
$$
;
NOTICE: yes
DO
非常感谢。某些登录角色包含小写字符。我尝试了ˇupper(rolcanlogin)ˇ,但它们没有转换为ÕÄÜ。数据库区域设置是爱沙尼亚语,对于CHAR列值,UPPER()可以正常工作。此外,
LOWER(rolcanlogin)
还可以将其他字符转换为小写
DO $$
BEGIN
IF (select rolcanlogin from pg_roles where rolname = 'aklaver') THEN
RAISE NOTICE 'yes';
ELSE
RAISE NOTICE 'no';
END IF;
END;
$$
;
NOTICE: yes
DO