Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 13951

sqlalchemy psycopg2.errors.InsufficientPrivilege: permission denied for relation

$
0
0

I've read over 20 different questions with the same problem - and the suggested answers didn't solve my problem. I'm still getting sqlalchemy psycopg2.errors.InsufficientPrivilege: permission denied for relation <<table>>

Environment: EC2, debian 8, postgresql, flask, sqlalchemymy table in postgresql:

Create table Members(id BIGSERIAL PRIMARY KEY,joinDate TIMESTAMPTZ DEFAULT Now(),password TEXT NOT NULL);

directly in postgresql: INSERT INTO members (password) VALUES('123') RETURNING id; works perfect

I've granted my user all possible grants

grant all privileges on database <my_db> to <my_user>grant all privileges on all table in schema public to <my_user>grant all privileges on all relations in schema public to <my_user>

I've also created a .htaccess file under var/www/html with Header set Access-Control-Allow-Origin "*"

my table mapped with sqlalchemy member.py

from datetime import datetimefrom sqlalchemy import create_engine, Column, String, Integer, DateTimefrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmakerfrom marshmallow import Schema, fieldsfrom sqlalchemy.schema import UniqueConstraintimport sqlalchemy as saEngine = create_engine('postgresql://<my_user>:<my_psw>@<my_db_url>/<my_dn_name>')Session = sessionmaker(bind=Engine)Base = declarative_base()class MemberSchema(Schema):    id = fields.Number()        password = fields.Str()class Member(Base):    __tablename__ = 'members'    id = Column(Integer, primary_key=True)    password = Column(String)    def __init__(self, password):        self.password = password

the code receiving the POST and doing the insert in test.py:

from flask import Flask, render_template, request,jsonifyfrom flask_cors import CORS, cross_originimport loggingdef register_member(password):    session = Session()    newMember = Member(password)    session.add(newMember)    session.commit()    return newMemberapp = Flask(__name__)cors = CORS(app)app.config['CORS_HEADERS'] = 'Content-Type'@app.route("/register", methods=["GET", "POST"])@cross_origin()    def register():    try:        formData = request.form        register_member(formData['password'])        return jsonify({"message":"Regsitrated successfully!"})    except Exception as ex:        logging.debug(ex)if __name__ == "__main__":    app.run(host='0.0.0.0', port=1234, debug=True)

executing this code results in exception with these errors

DEBUG:root:(psycopg2.errors.InsufficientPrivilege) permission denied for relation members[SQL: INSERT INTO members (password) VALUES (%(password)s) RETURNING members.id][parameters: {'password': '4444'}]

and

TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.

Any help would be appreciated


Viewing all articles
Browse latest Browse all 13951

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>