使用密码激活Dbroles

2020-09-28 02:27发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在对我们的Sybase ASE环境进行审核之后,我们得出了一些发现。 一种是为角色启用密码。 这样可以防止用户将自己的已授予角色授予其他用户。 它以为这只是向现有角色添加密码,而且这是透明的,不需要用户采取任何行动。 发生的事情是用户获得了拒绝访问角色中定义的对象的权限。 我当时以为sa或具有sa_role/sso_role的用户可以做到这一点,但是在深入研究之后,似乎必须由用户自己通过使用密码'somepw'来运行set role 来由用户自己激活密码 。 这打破了密码应该是用户秘密的想法。 一种选择是使用用户密码登录并激活角色,但这当然是一个重大的安全漏洞,实际上并不可行。 我查看了登录配置文件,但并未真正找到实现此目的的方法。 还查看了细化权限,但这需要我们没有的ASE_PRIVACY许可证。

任何解决此问题的建议将不胜感激。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在对我们的Sybase ASE环境进行审核之后,我们得出了一些发现。 一种是为角色启用密码。 这样可以防止用户将自己的已授予角色授予其他用户。 它以为这只是向现有角色添加密码,而且这是透明的,不需要用户采取任何行动。 发生的事情是用户获得了拒绝访问角色中定义的对象的权限。 我当时以为sa或具有sa_role/sso_role的用户可以做到这一点,但是在深入研究之后,似乎必须由用户自己通过使用密码'somepw'来运行set role 来由用户自己激活密码 。 这打破了密码应该是用户秘密的想法。 一种选择是使用用户密码登录并激活角色,但这当然是一个重大的安全漏洞,实际上并不可行。 我查看了登录配置文件,但并未真正找到实现此目的的方法。 还查看了细化权限,但这需要我们没有的ASE_PRIVACY许可证。

任何解决此问题的建议将不胜感激。

付费偷看设置
发送
3条回答
My梦
1楼-- · 2020-09-28 02:53

您好

撇开密码问题,我认为这句话是不正确的:

"用户能够将自己授予的角色授予其他用户。"

据我所知,没有级联权限,具有角色的登录名可以分配该角色。 需要sso_role来分配角色。

请参见下面的示例:

isql -Usa(具有sa_role/sso_role的sa)

sp_addlogin test_role,sybase
go
sp_addlogin测试,sybase
go
创建角色role1 将角色role1授予test_role
go 更改登录test_role 添加自动激活的角色role1
go
-登录test_role已自动激活role1


isql -Utest_role

sp_activeroles
开始

角色名称
------------------------------
角色1

授予角色role1进行测试

消息10353,级别14,状态2:
服务器'SP139',第1行:
您必须具有以下任何角色才能执行此命令/过程:
'sso_role' 。 请与具有适当角色的用户联系以寻求帮助。

亲切的问候

Bart van Kuijk

2楼-- · 2020-09-28 02:48

嗨,巴特,

感谢您的回答。 我还认为,没有sso_role的用户可以将角色授予其他用户是很牵强的。 但是,由于我们的Sybase环境很小且非常稳定,因此在ASE 15早期版本之后,我不再100%更新可能的状态。 我已向审核员发送了一封电子邮件,以获取确认在何处定义了此要求,或者是否以某种方式从SQL Server或某些其他供应商那里继承了该要求。 我也质疑这一发现是否适用于系统和/或本地客户创建的角色。 就是说,由于有一个密码选项,它的用途和含义是什么,它实际上可以防止...背后的想法是什么。

在审计员的发现之下:

主题:

没有密码的角色

观察:

在审核Sybase数据库设置期间,我们发现数据库中的角色不受密码保护。

风险:

未经授权的人可能授予并激活具有关键权限的角色。

---

如果您尚未尝试为角色设置密码,那么至少从isql会提示用户:

isql -Utest -w300

密码:

信息11141,级别16,状态1:

服务器" TestASE157":

启用角色" role_pw_test_ro"所需的密码。

1>从testdb..items中选择count(*)

2>前进

消息10330,级别14,状态1:服务器" TestASE157",第1行:对对象项,数据库testdb,所有者dbo的SELECT权限被拒绝

1>在

上设置带有passwd'******'的角色role_pw_test_ro

2>前进

1>从testdb..items中选择count(*)

2>前进

-----------

2152(受影响的1行)

1>退出

致谢!

奥托·韦斯特海姆(Per Otto Westheim)

粗暴的香蕉
3楼-- · 2020-09-28 02:51

角色密码是保护数据的一系列可能选项中的一个选项。 我不太确定它的使用范围,但是我已经确定地看到了它的实现。

举一个简单的例子:
假设有一个团队负责人。 他/她每天工作的大部分时间都喜欢同事,并使用默认情况下设置的用户定义角色:admin_operator。 对于某些任务和/或一天中的某些时间,需要激活团队负责人super_user_role的提升角色。 可以通过添加密码来保护高级角色,并提供额外的安全性,并将"日常"角色与"团队领导"角色明确分开。


更详细地说,这是一个巧妙的技巧,需要角色密码才能起作用:
http://www.sypron.nl/grant_sa.html

Other也许可以添加其他用例。

这是否解决了您所问的问题?

Rgds

巴特

一周热门 更多>