Module java.sql
Package java.sql

Class SQLPermission

所有已实现的接口:
Serializable, Guard

public final class SQLPermission extends BasicPermission
当启用SecurityManager的应用程序代码调用DriverManager.deregisterDriver方法、DriverManager.setLogWriter方法、DriverManager.setLogStream(已弃用)方法、SyncFactory.setJNDIContext方法、SyncFactory.setLogger方法、Connection.setNetworkTimeout方法或Connection.abort方法时,SecurityManager将检查的权限。如果没有SQLPermission对象,这些方法将作为运行时异常抛出java.lang.SecurityException

SQLPermission对象包含一个名称(也称为“目标名称”),但没有操作列表;要么有一个命名权限,要么没有。目标名称是权限的名称(见下文)。命名约定遵循分层属性命名约定。此外,星号可能出现在名称的末尾,跟在“.”后面,或单独出现,表示通配符匹配。例如:loadLibrary.**表示通配符匹配,而*loadLibrarya*b则不是。

以下表格列出了所有可能的SQLPermission目标名称。表格提供了权限允许的描述以及授予代码权限的风险的讨论。

权限目标名称,权限允许的内容以及相关风险
权限目标名称 权限允许的内容 允许此权限的风险
setLog 设置日志流 授予此权限是危险的。日志内容可能包含用户名和密码、SQL语句和SQL数据。
callAbort 允许调用Connection方法abort 允许应用程序终止与数据库的物理连接。
setSyncFactory 允许调用SyncFactory方法setJNDIContextsetLogger 允许应用程序指定从中检索SyncProvider实现的JNDI上下文以及SyncProvider实现将使用的日志对象。
setNetworkTimeout 允许调用Connection方法setNetworkTimeout 允许应用程序指定Connection或从Connection创建的对象等待数据库回复任何请求的最长时间。
deregisterDriver 允许调用DriverManager方法deregisterDriver 允许应用程序从已注册驱动程序列表中移除JDBC驱动程序并释放其资源。
自版本:
1.3
参见:
  • Constructor Details

    • SQLPermission

      public SQLPermission(String name)
      使用指定的名称创建一个新的SQLPermission对象。名称是SQLPermission的符号名称。
      参数:
      name - 此SQLPermission对象的名称,必须是 setLogcallAbortsetSyncFactoryderegisterDriversetNetworkTimeout
      抛出:
      NullPointerException - 如果namenull
      IllegalArgumentException - 如果name为空。
    • SQLPermission

      public SQLPermission(String name, String actions)
      使用指定的名称创建一个新的SQLPermission对象。名称是SQLPermission的符号名称;操作String当前未使用,应为null
      参数:
      name - 此SQLPermission对象的名称,必须是 setLogcallAbortsetSyncFactoryderegisterDriversetNetworkTimeout
      actions - 应为null
      抛出:
      NullPointerException - 如果namenull
      IllegalArgumentException - 如果name为空。