Error retrieving PostgreSQL DB information with Coturn

Marco Ippolito <[email protected]> Tue, 14 Jan 2020 17:33:21 +0100
Newsgroups gmane.comp.db.postgresql.general
Message-ID <CAFegzBRcSBJz1VG4wLeqoHs8VaRbeFNaQ7RcCH8b6D916aO-Gg@mail.gmail.com>
--0000000000002823f8059c1c2784
Content-Type: text/plain; charset="UTF-8"

In order to understand how to use Postgresql-11 with Coturn,
https://github.com/coturn/coturn ,
I created a postgresql-11 dabatase using
/usr/local/share/turnserver/schema.sql  :

    CREATE TABLE turnusers_lt (
        realm varchar(127) default '',
        name varchar(512),
        hmackey char(128),
        PRIMARY KEY (realm,name)
    );

    CREATE TABLE turn_secret (
            realm varchar(127) default '',
            value varchar(256),
            primary key (realm,value)
    );

    CREATE TABLE allowed_peer_ip (
            realm varchar(127) default '',
            ip_range varchar(256),
            primary key (realm,ip_range)
    );

    CREATE TABLE denied_peer_ip (
            realm varchar(127) default '',
            ip_range varchar(256),
            primary key (realm,ip_range)
    );

    CREATE TABLE turn_origin_to_realm (
            origin varchar(127),
            realm varchar(127),
            primary key (origin)
    );

    CREATE TABLE turn_realm_option (
            realm varchar(127) default '',
            opt varchar(32),
            value varchar(128),
            primary key (realm,opt)
    );

    CREATE TABLE oauth_key (
            kid varchar(128),
            ikm_key varchar(256),
            timestamp bigint default 0,
            lifetime integer default 0,
            as_rs_alg varchar(64) default '',
            realm varchar(127),
            primary key (kid)
    );


But when trying to execute secure_relay_with_db_psql.sh :

    (base) marco@marco-U36SG:~/turnserver-4.5.0.8/examples/scripts/longtermsecuredb$

    ./secure_relay_with_db_psql.sh
    0: WARNING: Cannot find config file: turnserver.conf. Default and
command-line settings will be
    used.
    0: Listener address to use: 127.0.0.1
    0: Listener address to use: ::1
    0: Relay address to use: 127.0.0.1
    0: Relay address to use: ::1
    0: 3000000 bytes per second allowed per session
    0: WARNING: Cannot find config file: turnserver.conf. Default and
command-line settings will
       be used.
    0: RFC 3489/5389/5766/5780/6062/6156 STUN/TURN Server
    Version Coturn-4.5.0.8 'dan Eider'
    0: Max number of open files/sockets allowed for this process: 4096
    0: Due to the open files/sockets limitation,
    max supported number of TURN Sessions possible is: 2000 (approximately)
    0: ==== Show him the instruments, Practical Frost: ====

    0: TLS supported
    0: DTLS supported
    0: DTLS 1.2 supported
    0: TURN/STUN ALPN supported
    0: Third-party authorization (oAuth) supported
    0: GCM (AEAD) supported
    0: OpenSSL compile-time version: OpenSSL 1.1.1  11 Sep 2018 (0x1010100f)
    0: SQLite is not supported
    0: Redis supported
    0: PostgreSQL supported
    0: MySQL supported
    0: MongoDB is not supported
    0:
    0: Default Net Engine version: 3 (UDP thread per CPU core)

    =====================================================

    0: Domain name:
    0: Default realm: north.gov
    0: oAuth server name: blackdow.carleon.gov
    0: WARNING: cannot find certificate file: turn_server_cert.pem (1)
    0: WARNING: cannot start TLS and DTLS listeners because certificate
file is not set properly
    0: WARNING: cannot find private key file: turn_server_pkey.pem (1)
    0: WARNING: cannot start TLS and DTLS listeners because private key
file is not set properly
    Cannot create pid file: /var/run/turnserver.pid: Permission denied
    0: Cannot create pid file: /var/run/turnserver.pid
    0: pid file created: /var/tmp/turnserver.pid
    0: IO method (main listener thread): epoll (with changelist)
    0: Wait for relay ports initialization...
    0:   relay 127.0.0.1 initialization...
    0:   relay 127.0.0.1 initialization done
    0:   relay ::1 initialization...
    0:   relay ::1 initialization done
    0: Relay ports initialization done
    0: IO method (general relay thread): epoll (with changelist)
    0: turn server id=0 created
    0: IPv4. SCTP listener opened on : 127.0.0.1:3478
    0: IPv4. TCP listener opened on : 127.0.0.1:3478
    0: IPv4. SCTP listener opened on : 127.0.0.1:3479
    0: IPv4. TCP listener opened on : 127.0.0.1:3479
    0: IPv6. SCTP listener opened on : ::1:3478
    0: IPv6. TCP listener opened on : ::1:3478
    0: IPv6. SCTP listener opened on : ::1:3479
    0: IPv6. TCP listener opened on : ::1:3479
    0: IO method (general relay thread): epoll (with changelist)
    0: turn server id=1 created
    0: IPv6. TCP listener opened on : ::1:3479
    0: IPv6. UDP listener opened on: ::1:3479
    0: Total General servers: 3
    0: IO method (auth thread): epoll (with changelist)
    0: IO method (auth thread): epoll (with changelist)
    0: IO method (admin thread): epoll (with changelist)
    0: IPv4. CLI listener opened on : 127.0.0.1:5766
    0: PostgreSQL DB connection success: host=localhost dbname=coturn
user=turn password=turn
    connect_timeout=30
    0: ERROR: Error retrieving PostgreSQL DB information: ERROR:
 permission denied for table
    allowed_peer_ip

But these are the tables of coturndb :

    coturn=# \dt
                    List of relations
         Schema |         Name         | Type  |  Owner
        --------+----------------------+-------+----------
         public | admin_user           | table | postgres
         public | allowed_peer_ip      | table | postgres
         public | denied_peer_ip       | table | postgres
         public | oauth_key            | table | postgres
         public | turn_origin_to_realm | table | postgres
         public | turn_realm_option    | table | postgres
         public | turn_secret          | table | postgres
         public | turnusers_lt         | table | postgres
    (8 rows)

    coturn=# \d allowed_peer_ip
                              Table "public.allowed_peer_ip"
      Column  |          Type          | Collation | Nullable |
 Default

----------+------------------------+-----------+----------+-----------------------
     realm    | character varying(127) |           | not null |
''::character varying
     ip_range | character varying(256) |           | not null |
    Indexes:
        "allowed_peer_ip_pkey" PRIMARY KEY, btree (realm, ip_range)

    coturn=# \d denied_peer_ip
                              Table "public.denied_peer_ip"
      Column  |          Type          | Collation | Nullable |
 Default

----------+------------------------+-----------+----------+-----------------------
     realm    | character varying(127) |           | not null |
''::character varying
     ip_range | character varying(256) |           | not null |
    Indexes:
        "denied_peer_ip_pkey" PRIMARY KEY, btree (realm, ip_range)

    coturn=# \d turn_secret
                               Table "public.turn_secret"
     Column |          Type          | Collation | Nullable |
 Default

--------+------------------------+-----------+----------+-----------------------
     realm  | character varying(127) |           | not null | ''::character
varying
     value  | character varying(256) |           | not null |
    Indexes:
        "turn_secret_pkey" PRIMARY KEY, btree (realm, value)

Why it says "probably, the tables 'allowed_peer_ip' and/or 'denied_peer_ip'
have to be upgraded to include the realm column" ?
Why it says "permission denied" for table turn_secret and for table
allowed_peer_ip?
How to solve the problem?

Marco

--0000000000002823f8059c1c2784
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>In order to understand how to use Postgresql-11 with =
Coturn, <a href=3D"https://github.com/coturn/coturn">https://github.com/cot=
urn/coturn</a> ,</div><div>I created a postgresql-11 dabatase using /usr/lo=
cal/share/turnserver/schema.sql=C2=A0 :</div><div><br></div><div>=C2=A0 =C2=
=A0 CREATE TABLE turnusers_lt (<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 realm varcha=
r(127) default &#39;&#39;,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 name varchar(512)=
,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 hmackey char(128),<br>=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 PRIMARY KEY (realm,name)<br>=C2=A0 =C2=A0 );<br><br>=C2=A0 =C2=A0 C=
REATE TABLE turn_secret (<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 real=
m varchar(127) default &#39;&#39;,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 value varchar(256),<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 pri=
mary key (realm,value)<br>=C2=A0 =C2=A0 );<br><br>=C2=A0 =C2=A0 CREATE TABL=
E allowed_peer_ip (<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 realm varc=
har(127) default &#39;&#39;,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 i=
p_range varchar(256),<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 primary =
key (realm,ip_range)<br>=C2=A0 =C2=A0 );<br><br>=C2=A0 =C2=A0 CREATE TABLE =
denied_peer_ip (<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 realm varchar=
(127) default &#39;&#39;,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ip_r=
ange varchar(256),<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 primary key=
 (realm,ip_range)<br>=C2=A0 =C2=A0 );<br><br>=C2=A0 =C2=A0 CREATE TABLE tur=
n_origin_to_realm (<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 origin var=
char(127),<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 realm varchar(127),=
<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 primary key (origin)<br>=C2=
=A0 =C2=A0 );<br><br>=C2=A0 =C2=A0 CREATE TABLE turn_realm_option (<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 realm varchar(127) default &#39;&#39=
;,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opt varchar(32),<br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 value varchar(128),<br>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 primary key (realm,opt)<br>=C2=A0 =C2=A0 );<br><br=
>=C2=A0 =C2=A0 CREATE TABLE oauth_key (<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 kid varchar(128),<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 i=
km_key varchar(256),<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 timestamp=
 bigint default 0,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 lifetime in=
teger default 0,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 as_rs_alg var=
char(64) default &#39;&#39;,<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 r=
ealm varchar(127),<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 primary key=
 (kid)<br>=C2=A0 =C2=A0 );<br></div><div><br></div><div><br></div>But when =
trying to execute secure_relay_with_db_psql.sh :<br><br>=C2=A0 =C2=A0 (base=
) marco@marco-U36SG:~/turnserver-4.5.0.8/examples/scripts/longtermsecuredb$=
 <br>=C2=A0 =C2=A0 ./secure_relay_with_db_psql.sh <br>=C2=A0 =C2=A0 0: WARN=
ING: Cannot find config file: turnserver.conf. Default and command-line set=
tings will be <br>=C2=A0 =C2=A0 used.<br>=C2=A0 =C2=A0 0: Listener address =
to use: 127.0.0.1<br>=C2=A0 =C2=A0 0: Listener address to use: ::1<br>=C2=
=A0 =C2=A0 0: Relay address to use: 127.0.0.1<br>=C2=A0 =C2=A0 0: Relay add=
ress to use: ::1<br>=C2=A0 =C2=A0 0: 3000000 bytes per second allowed per s=
ession<br>=C2=A0 =C2=A0 0: WARNING: Cannot find config file: turnserver.con=
f. Default and command-line settings will<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0be =
used.<br>=C2=A0 =C2=A0 0: RFC 3489/5389/5766/5780/6062/6156 STUN/TURN Serve=
r<br>=C2=A0 =C2=A0 Version Coturn-4.5.0.8 &#39;dan Eider&#39;<br>=C2=A0 =C2=
=A0 0: Max number of open files/sockets allowed for this process: 4096<br>=
=C2=A0 =C2=A0 0: Due to the open files/sockets limitation,<br>=C2=A0 =C2=A0=
 max supported number of TURN Sessions possible is: 2000 (approximately)<br=
>=C2=A0 =C2=A0 0: =3D=3D=3D=3D Show him the instruments, Practical Frost: =
=3D=3D=3D=3D<br><br>=C2=A0 =C2=A0 0: TLS supported<br>=C2=A0 =C2=A0 0: DTLS=
 supported<br>=C2=A0 =C2=A0 0: DTLS 1.2 supported<br>=C2=A0 =C2=A0 0: TURN/=
STUN ALPN supported<br>=C2=A0 =C2=A0 0: Third-party authorization (oAuth) s=
upported<br>=C2=A0 =C2=A0 0: GCM (AEAD) supported<br>=C2=A0 =C2=A0 0: OpenS=
SL compile-time version: OpenSSL 1.1.1 =C2=A011 Sep 2018 (0x1010100f)<br>=
=C2=A0 =C2=A0 0: SQLite is not supported<br>=C2=A0 =C2=A0 0: Redis supporte=
d<br>=C2=A0 =C2=A0 0: PostgreSQL supported<br>=C2=A0 =C2=A0 0: MySQL suppor=
ted<br>=C2=A0 =C2=A0 0: MongoDB is not supported<br>=C2=A0 =C2=A0 0: <br>=
=C2=A0 =C2=A0 0: Default Net Engine version: 3 (UDP thread per CPU core)<br=
><br>=C2=A0 =C2=A0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br><br>=C2=A0 =C2=A0 0: Domain name: <br>=C2=
=A0 =C2=A0 0: Default realm: <a href=3D"http://north.gov">north.gov</a><br>=
=C2=A0 =C2=A0 0: oAuth server name: <a href=3D"http://blackdow.carleon.gov"=
>blackdow.carleon.gov</a><br>=C2=A0 =C2=A0 0: WARNING: cannot find certific=
ate file: turn_server_cert.pem (1)<br>=C2=A0 =C2=A0 0: WARNING: cannot star=
t TLS and DTLS listeners because certificate file is not set properly<br>=
=C2=A0 =C2=A0 0: WARNING: cannot find private key file: turn_server_pkey.pe=
m (1)<br>=C2=A0 =C2=A0 0: WARNING: cannot start TLS and DTLS listeners beca=
use private key file is not set properly<br>=C2=A0 =C2=A0 Cannot create pid=
 file: /var/run/turnserver.pid: Permission denied<br>=C2=A0 =C2=A0 0: Canno=
t create pid file: /var/run/turnserver.pid<br>=C2=A0 =C2=A0 0: pid file cre=
ated: /var/tmp/turnserver.pid<br>=C2=A0 =C2=A0 0: IO method (main listener =
thread): epoll (with changelist)<br>=C2=A0 =C2=A0 0: Wait for relay ports i=
nitialization...<br>=C2=A0 =C2=A0 0: =C2=A0 relay 127.0.0.1 initialization.=
..<br>=C2=A0 =C2=A0 0: =C2=A0 relay 127.0.0.1 initialization done<br>=C2=A0=
 =C2=A0 0: =C2=A0 relay ::1 initialization...<br>=C2=A0 =C2=A0 0: =C2=A0 re=
lay ::1 initialization done<br>=C2=A0 =C2=A0 0: Relay ports initialization =
done<br>=C2=A0 =C2=A0 0: IO method (general relay thread): epoll (with chan=
gelist)<br>=C2=A0 =C2=A0 0: turn server id=3D0 created<br>=C2=A0 =C2=A0 0: =
IPv4. SCTP listener opened on : <a href=3D"http://127.0.0.1:3478">127.0.0.1=
:3478</a><br>=C2=A0 =C2=A0 0: IPv4. TCP listener opened on : <a href=3D"htt=
p://127.0.0.1:3478">127.0.0.1:3478</a><br>=C2=A0 =C2=A0 0: IPv4. SCTP liste=
ner opened on : <a href=3D"http://127.0.0.1:3479">127.0.0.1:3479</a><br>=C2=
=A0 =C2=A0 0: IPv4. TCP listener opened on : <a href=3D"http://127.0.0.1:34=
79">127.0.0.1:3479</a><br>=C2=A0 =C2=A0 0: IPv6. SCTP listener opened on : =
::1:3478<br>=C2=A0 =C2=A0 0: IPv6. TCP listener opened on : ::1:3478<br>=C2=
=A0 =C2=A0 0: IPv6. SCTP listener opened on : ::1:3479<br>=C2=A0 =C2=A0 0: =
IPv6. TCP listener opened on : ::1:3479<br>=C2=A0 =C2=A0 0: IO method (gene=
ral relay thread): epoll (with changelist)<br>=C2=A0 =C2=A0 0: turn server =
id=3D1 created<br>=C2=A0 =C2=A0 0: IPv6. TCP listener opened on : ::1:3479<=
br>=C2=A0 =C2=A0 0: IPv6. UDP listener opened on: ::1:3479<br>=C2=A0 =C2=A0=
 0: Total General servers: 3<br>=C2=A0 =C2=A0 0: IO method (auth thread): e=
poll (with changelist)<br>=C2=A0 =C2=A0 0: IO method (auth thread): epoll (=
with changelist)<br>=C2=A0 =C2=A0 0: IO method (admin thread): epoll (with =
changelist)<br>=C2=A0 =C2=A0 0: IPv4. CLI listener opened on : <a href=3D"h=
ttp://127.0.0.1:5766">127.0.0.1:5766</a><br>=C2=A0 =C2=A0 0: PostgreSQL DB =
connection success: host=3Dlocalhost dbname=3Dcoturn user=3Dturn password=
=3Dturn <br>=C2=A0 =C2=A0 connect_timeout=3D30<br>=C2=A0 =C2=A0 0: ERROR: E=
rror retrieving PostgreSQL DB information: ERROR: =C2=A0permission denied f=
or table <br>=C2=A0 =C2=A0 allowed_peer_ip<br><br>But these are the tables =
of coturndb : <br><br>=C2=A0 =C2=A0 coturn=3D# \dt<br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 List of relations<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Schema | =C2=A0 =C2=A0 =C2=A0 =C2=A0 Name =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | Type =C2=A0| =C2=A0Owner =C2=A0 <br>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 --------+----------------------+-------+----------<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0public | admin_user =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 | table | postgres<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0publi=
c | allowed_peer_ip =C2=A0 =C2=A0 =C2=A0| table | postgres<br>=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0public | denied_peer_ip =C2=A0 =C2=A0 =C2=A0 | table |=
 postgres<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0public | oauth_key =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| table | postgres<br>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0public | turn_origin_to_realm | table | postgres<br>=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0public | turn_realm_option =C2=A0 =C2=A0| table=
 | postgres<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0public | turn_secret =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| table | postgres<br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0public | turnusers_lt =C2=A0 =C2=A0 =C2=A0 =C2=A0 | table | po=
stgres<br>=C2=A0 =C2=A0 (8 rows)<br><br>=C2=A0 =C2=A0 coturn=3D# \d allowed=
_peer_ip<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Table &quot;public.allowed_peer_i=
p&quot;<br>=C2=A0 =C2=A0 =C2=A0 Column =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0Type =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| Collation | Nullable | =C2=
=A0 =C2=A0 =C2=A0 =C2=A0Default =C2=A0 =C2=A0 =C2=A0 =C2=A0<br>=C2=A0 =C2=
=A0 ----------+------------------------+-----------+----------+------------=
-----------<br>=C2=A0 =C2=A0 =C2=A0realm =C2=A0 =C2=A0| character varying(1=
27) | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null | &#39;&#39;::character=
 varying<br>=C2=A0 =C2=A0 =C2=A0ip_range | character varying(256) | =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null | <br>=C2=A0 =C2=A0 Indexes:<br>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 &quot;allowed_peer_ip_pkey&quot; PRIMARY KEY, btre=
e (realm, ip_range)<br><br>=C2=A0 =C2=A0 coturn=3D# \d denied_peer_ip<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Table &quot;public.denied_peer_ip&quot;<br>=
=C2=A0 =C2=A0 =C2=A0 Column =C2=A0| =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Type =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| Collation | Nullable | =C2=A0 =C2=A0 =
=C2=A0 =C2=A0Default =C2=A0 =C2=A0 =C2=A0 =C2=A0<br>=C2=A0 =C2=A0 ---------=
-+------------------------+-----------+----------+-----------------------<b=
r>=C2=A0 =C2=A0 =C2=A0realm =C2=A0 =C2=A0| character varying(127) | =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null | &#39;&#39;::character varying<br>=
=C2=A0 =C2=A0 =C2=A0ip_range | character varying(256) | =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 | not null | <br>=C2=A0 =C2=A0 Indexes:<br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 &quot;denied_peer_ip_pkey&quot; PRIMARY KEY, btree (realm, ip=
_range)<br><br>=C2=A0 =C2=A0 coturn=3D# \d turn_secret<br>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0Table &quot;public.turn_secret&quot;<br>=C2=A0 =C2=A0 =
=C2=A0Column | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Type =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0| Collation | Nullable | =C2=A0 =C2=A0 =C2=A0 =C2=A0Default =
=C2=A0 =C2=A0 =C2=A0 =C2=A0<br>=C2=A0 =C2=A0 --------+---------------------=
---+-----------+----------+-----------------------<br>=C2=A0 =C2=A0 =C2=A0r=
ealm =C2=A0| character varying(127) | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | =
not null | &#39;&#39;::character varying<br>=C2=A0 =C2=A0 =C2=A0value =C2=
=A0| character varying(256) | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | not null=
 | <br>=C2=A0 =C2=A0 Indexes:<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 &quot;turn_sec=
ret_pkey&quot; PRIMARY KEY, btree (realm, value)<br><br>Why it says &quot;p=
robably, the tables &#39;allowed_peer_ip&#39; and/or &#39;denied_peer_ip&#3=
9; have to be upgraded to include the realm column&quot; ?<br>Why it says &=
quot;permission denied&quot; for table turn_secret and for table allowed_pe=
er_ip?<br>How to solve the problem?<br><br>Marco</div>

--0000000000002823f8059c1c2784--