【TechTarget中国原创】问:TNS能限制单一用户吗?如:sqlplus scott/tiger@ONLYSCOTTALLOWED。其他用户都不会使用ONLYSCOTTALLOWED db连接。如果可以的话,请您教我一种解决方法。我正在PHP上开发一种Web应用程序,我想用这个程序来访问唯一授权的Oracle用户(这个单一的用户在其他用户表里仅有select权限)。
答:有一些Oracle用户能使用这一连接,所以通过grant或者Role语句还不能解决这个问题。
在TNS层上还没有建立允许结构。此外,我们不能将安全和不安全混淆。通过隐藏TNS连接说明符,你可以使用户更难连接数据库,但是你不能阻止他们访问数据库。
你该在数据附近每层建立安全。在Oracle环境中你应该从数据库安全开始着手。如果单一的用户需要进行特殊访问,他们就应该被授予数据库帐号和特殊访问权限。如果你的客户系统有静态IP地址,你可能希望用sqlnet.ora参数TCP.VALIDNODE_CHECKING, TCP.INVITED_NODES和TCP.EXCLUDED_NODES来控制让哪些客户连接你的用户。
唯一的解决方法:用合适的数据库grant或者Role语句来保护你的文件安全,任何其他的语句都无法保护你的数据。一般而言,在多个用户中共享数据库帐户是最不可取的做法。你购买的产品应该包括很多安全措施,但你必须用他们来保护自己!