我通过以下方式创建了具有最低权限的用户:
db.command(new OCommandScript("sql", "insert into orole set name = 'ardaRole', mode = 0")).execute(); db.command(new OCommandScript("sql", "update orole put rules = 'database.class', 2 where name = 'ardaRole'")).execute(); db.command(new OCommandScript("sql", "update orole put rules = 'database.function', 2 where name = 'ardaRole'")).execute(); db.command(new OCommandScript("sql", "update orole put rules = 'database.cluster', 2 where name = 'ardaRole'")).execute(); db.command(new OCommandScript("sql", "insert into ouser set name = 'arda', password = 'arda', status = 'ACTIVE', roles = (select from ORole where name = 'ardaRole')")) .execute();
效果很好。如果要在我的项目中检查权限,请使用 arda arda 检出:http : _//arda-maps.org:2480_ 。
所以我的问题是这些权利仍然允许诸如 更改顶点名称之类的 事情(因此我将LOVES更改为LOVESd)。但是,这扼杀了整个数据库的结构和功能!
那么,如何才能进一步限制权利呢?这真的很糟糕,因为我想让任何人都可以访问数据库。但是没有人应该能够更改刚刚阅读的内容…必须有一种方法…
看来它以上述方式起作用。对于特定用户而言,这只是一个错误或临时更改,不会进一步损害数据库。因此代码完全正确。