eos提供了灵活的权限系统。用户可以自己基于账号创建权限,然后将该权限连接到某个合约的某个行为上。即只有相应权限的用户才能执行某个合约。核心思想就是合约的发布者可以自己指定
1、创建自定义权限
创建权限前:
![](https://img.haomeiwen.com/i3078643/9264359b111c82c2.png)
创建权限:
![](https://img.haomeiwen.com/i3078643/6c777a7c38941a25.png)
说明:
权限名字:pmsupsert 父权限:owner
使用开发公钥作为权限证明
创建权限后:
![](https://img.haomeiwen.com/i3078643/3fae2d4f449f4777.png)
2、将action连接到某个自定义权限
![](https://img.haomeiwen.com/i3078643/c8e4a9163ddc5a16.png)
此处有些疑问,该命令是将alice的pmsupsert权限连接到addressbook2的upsert行为上。应该是以addressbook2账号的名义来执行的吧。就是说合约的部署账号可以指定哪个账号的哪个权限可以执行该行为。
3、测试
![](https://img.haomeiwen.com/i3078643/c9add3d25509ae0d.png)
用active权限提示失败,必须用alice的pmsupsert权限才行。用bob等其他账号也不行。
网友评论