后端多租户
Multitenancy in backand
我已经在 Parse 中实现了多租户,方法是 (1) 创建特定于租户的角色(每次创建新租户时)和 (2) 将它们分配给 objects/records/rows 相关的 ACL在任何给定的 table.
上给租户
我想知道它是否与 Backand 上的(基于角色的)逻辑相同,应该如何实现。
任何示例或指向示例的指针都很棒。
Backand 中基于角色的安全性将帮助您构建多租户应用程序,包括对象级安全性和预定义过滤器。预定义过滤器对于多租户很重要。它允许您为不同的租户使用相同的对象并过滤数据,以便隔离每个租户。预定义过滤器是 NoSQL 或 SQL 语句,它始终在服务器中 运行 并过滤数据。在 Backand 中,您可以自动创建一个语句,该语句将仅过滤请求用户创建的数据。您需要确保所有对象都与用户对象相关,这样的过滤语句才能起作用。
这是一个自动生成的 NoSQL 示例,它过滤特定用户的所有项目,除非该用户具有管理员角色:
{
"$or": [
{
"'{{sys::role}}'": "'Admin'"
},
{
"user": {
"$in": {
"object": "users",
"q": {
"email": {
"$eq": "'{{sys::username}}'"
}
},
"fields": [
"id"
]
}
}
}
]
}
这里和SQL一样:
( 'Admin' = '{{sys::role}}') or (`items`.`user` in (select `users`.`id` from `users` where `users`.`email` = '{{sys::username}}'))
您可以编辑此语句,以便它过滤在您的应用程序中标识租户的内容。
您可以对每个对象进行此操作。它位于对象的安全选项卡中。
我已经在 Parse 中实现了多租户,方法是 (1) 创建特定于租户的角色(每次创建新租户时)和 (2) 将它们分配给 objects/records/rows 相关的 ACL在任何给定的 table.
上给租户我想知道它是否与 Backand 上的(基于角色的)逻辑相同,应该如何实现。
任何示例或指向示例的指针都很棒。
Backand 中基于角色的安全性将帮助您构建多租户应用程序,包括对象级安全性和预定义过滤器。预定义过滤器对于多租户很重要。它允许您为不同的租户使用相同的对象并过滤数据,以便隔离每个租户。预定义过滤器是 NoSQL 或 SQL 语句,它始终在服务器中 运行 并过滤数据。在 Backand 中,您可以自动创建一个语句,该语句将仅过滤请求用户创建的数据。您需要确保所有对象都与用户对象相关,这样的过滤语句才能起作用。 这是一个自动生成的 NoSQL 示例,它过滤特定用户的所有项目,除非该用户具有管理员角色:
{
"$or": [
{
"'{{sys::role}}'": "'Admin'"
},
{
"user": {
"$in": {
"object": "users",
"q": {
"email": {
"$eq": "'{{sys::username}}'"
}
},
"fields": [
"id"
]
}
}
}
]
}
这里和SQL一样:
( 'Admin' = '{{sys::role}}') or (`items`.`user` in (select `users`.`id` from `users` where `users`.`email` = '{{sys::username}}'))
您可以编辑此语句,以便它过滤在您的应用程序中标识租户的内容。
您可以对每个对象进行此操作。它位于对象的安全选项卡中。