Ограничить разрешение пользователя db на Google Cloud sql

Я написал функцию, основанную на http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html , которая добавляет возможность все еще передаются в ваш собственный параметр «ключ». Мне нужно это, чтобы выполнить естественный вид списков, содержащих более сложные объекты (а не только строки).

import re

def natural_sort(list, key=lambda s:s):
    """
    Sort the list into natural alphanumeric order.
    """
    def get_alphanum_key_func(key):
        convert = lambda text: int(text) if text.isdigit() else text 
        return lambda s: [convert(c) for c in re.split('([0-9]+)', key(s))]
    sort_key = get_alphanum_key_func(key)
    list.sort(key=sort_key)

Например:

my_list = [{'name':'b'}, {'name':'10'}, {'name':'a'}, {'name':'1'}, {'name':'9'}]
natural_sort(my_list, key=lambda x: x['name'])
print my_list
[{'name': '1'}, {'name': '9'}, {'name': '10'}, {'name': 'a'}, {'name': 'b'}]

0
задан Manav 13 July 2018 в 13:19
поделиться

1 ответ

Postgres on Cloud SQL является стандартным Postgres, поэтому он похож на любой другой экземпляр Postgres:

Чтобы предоставить роли все привилегии:

GRANT ALL ON <db_name> TO <role_name>;

Чтобы удалить все привилегии:

REVOKE ALL ON <db_name> TO <role_name>; 

Postgres docs в привилегиях дает следующее предостережение для:

Специальные привилегии владельца объекта (т. е. права для изменения или уничтожения объекта) всегда подразумеваются в качестве владельца и не могут быть предоставлены или отменены

. Помните об этом - если UserA владеет обеими базами данных, они всегда могут их изменять.

0
ответ дан kurtisvg 17 August 2018 в 12:46
поделиться
  • 1
    К сожалению, это не работает: я создал все базы данных / пользователей через «postgres». пользователь, а затем предоставил / отозвал разрешения по мере необходимости, но проблема все еще существует. – Stefano Ansaloni 16 July 2018 в 06:38
  • 2
    Это объясняется в ссылке, предоставленной в ответе выше: Особые привилегии владельца объекта (т. Е. Право изменять или уничтожать объект) всегда подразумеваются в качестве владельца и не могут быть предоставлены или отменены. Но владелец может отменить свои обычные привилегии, например, сделать таблицу только для чтения ... Вы можете изменить таблицы как UserB или UserA, потому что в основном вы являетесь владельцем созданных объектов. Постарайтесь, чтобы люди, которым вы расскажете о тех ролях, внесите изменения и посмотрите, что произойдет. – Victor Herasme Perez 16 July 2018 в 11:34
Другие вопросы по тегам:

Похожие вопросы: