Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查用户在Postgres中的登录权限_Sql_Postgresql_Plpgsql - Fatal编程技术网

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