当前位置:首页 » 安全设置 » 数据库在网络设置时间限制
扩展阅读
注册表怎么设置网络通道 2024-04-27 22:59:00
减缓手机耗电的软件 2024-04-27 22:36:56

数据库在网络设置时间限制

发布时间: 2022-12-07 15:01:34

A. 如何设置限制实现访问oracle数据库ip,mac,时间。

一般来说,这不是数据库的功能。
要使用这功能,你不能够直接登录数据库,而是登录到应用服务器,这之间的协议可以认证MAC或其他特征码,证书什么的。由中间的应用服务器代理数据库。
还有一个简化的方法,把数据库的账号、口令存在ldap里,在获取ldap时验证MAC,才提供口令。

B. 数据库怎么设置录入限制,就是在一个时间段内能够增加内容,其余时间不能增加内容 兄弟分不多,谢谢各位

你说的这个如果不用程序控制的话很麻烦,DBMS本身并没有对数据录入时间的限制,只是在建表语句里面的check项中检查一下数据有关的东西,但是这个功能应该可以变通实现,比如在你录入的数据项中增加一个系统时间字段,,然后在另一个表里面录入时间段数据,建表语句有一个check检查你录入的时间和你限定时间段,在录入数据的时候check系统时间和你录入的时间段,如果不满足check的话,是无法录入数据的

触发器我也想过,按个办法太麻烦,先插入,不满足在回滚或删除,容易出错不太适合,在建表语句里面加check比较稳妥

C. mysql 在数据库中设置时间

1、非要用datetime的话就不能用default而要通过trigger来实现
2、在插入时value用now()函数、或者自行取运行时间
3、字段类型改变为:
datecreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
datemodified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
但是其实不可行,因为一个表只能有一个CURRENT_TIMESTAMP,但你有三个字段。

所以当有多个时间可能还是得结合方式2与方式3来综合处理。当然全都用方式2也就不会提出这种问题了。

D. 如何设置数据库的连接数和连接超时时间

如何设置数据库的连接数和连接超时时间
连接数的话可以修改spfile文件来约束
查看当前的连接数:
select count(*) from v$process;
–数据库允许的最大连接数:
select value from v$parameter where name = ‘processes’;
–修改最大连接数:alter system set processes = 500 scope = spfile;
–重启数据库:shutdown immediate;
startup;
–查看当前有哪些用户正在使用数据
SELECT osuser, a.username,cpu_time/executions/1000000||’s’, sql_fulltext,machine
from v$session a, v$sqlarea b where a.sql_address =b.address order by cpu_time/executions desc;
连接超时时间的话有很多办法,最常用的是
在你的oracle服务器的 $ORACLE_HOME/network/admin 中的 sqlnet.ora中设置参数SQLNET.EXPIRE_TIME= n n为一个指定的分钟数
当客户端中断,在 n 分钟内就可以自动断开连接。

E. 如何给SQL Server设置保持连接的时间

如何给SQL Server设置保持连接的时间?
以 sql server 2000 为例,打开<企业管理器>,选择 <sql server 组>下面,对应的服务器,<右键>,<属性>,在弹出的选项页上,选择<连接>,下面有个<查询超时设定>, 默认值是600 ,这里可以修改为大一点。点确定,就可以了。

说明:600秒一般情况下,满足开发应用,但在实际应用时,有可能,将这值设得较大也没有完成需要处理的任务就断开了,方法,是要把客户端的连接对象时间也设大些。比如,在.net下,要将connection和command对像的timeout时间,也设得较大,才能执行比较大的任务。

F. mysql_connect()连接数据库超时设置

好象没有,可以借助其他方法,但是你就不能die()了,例如

set_time_limit(5);
$conn=mysql_connect();
if($conn){
set_time_limit(30);
}


set_time_limit用于控制php最大运行时间,0表示无限制,以上代码意思是先将页面运行时间设为5秒,5秒内如果还在尝试连接页面就会提示已经超过了最大运行时间,否则重新设置页面最大运行时间为30秒。


不理解,这样做有什么意义吗?如果你的网站连接一次数据库都要超过1秒,你的网站的速度得多慢啊。正常的网站连接数据库都是毫秒级别的。

G. C#连接mysql数据库,怎么设置超时时间

MySQL查询超时的设置方法

为了优化OceanBase的query timeout设置方式,特调研MySQL关于timeout的处理,记录如下。

[plain]
mysql> show variables like '%time%';
+----------------------------+-------------------+
| Variable_name | Value |
+----------------------------+-------------------+
| connect_timeout | 10 |
| datetime_format | %Y-%m-%d %H:%i:%s |
| delayed_insert_timeout | 300 |
| flush_time | 1800 |
| innodb_lock_wait_timeout | 50 |
| innodb_old_blocks_time | 0 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lc_time_names | en_US |
| lock_wait_timeout | 31536000 |
| long_query_time | 10.000000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| slave_net_timeout | 3600 |
| slow_launch_time | 2 |
| system_time_zone | |
| time_format | %H:%i:%s |
| time_zone | SYSTEM |
| timed_mutexes | OFF |
| timestamp | 1366027807 |
| wait_timeout | 28800 |
+----------------------------+-------------------+
21 rows in set, 1 warning (0.00 sec)

重点解释其中几个参数:

connect_timeout:

The number of seconds that the mysqld server waits for a connect packet before respondingwith Bad handshake. The default value is 10 seconds as of MySQL 5.1.23 and 5 seconds before that. Increasing the connect_timeout value might help if clients frequently encounter errors of the form Lost connection to MySQL server at ‘XXX’, system error: errno.
解释:在获取链接时,等待握手的超时时间,只在登录时有效,登录成功这个参数就不管事了。主要是为了防止网络不佳时应用重连导致连接数涨太快,一般默认即可。

interactive_timeout:

The number of seconds the server waits for activity on an interactive connection before closing it. An interactive client is defined as a client that uses the CLIENT_INTERACTIVE option to mysql_real_connect(). See alsowait_timeout.

解释:一个持续SLEEP状态的线程多久被关闭。线程每次被使用都会被唤醒为acrivity状态,执行完Query后成为interactive状态,重新开始计时。wait_timeout不同在于只作用于TCP/IP和Socket链接的线程,意义是一样的。

MySQL可以配置连接的超时时间,这个时间如果做得太长,甚至到了10min,那么很可能发生这种情况,3000个链接都被占满而且sleep在哪,新链接进不来,导致无法正常服务。因此这个配置尽量配置一个符合逻辑的值,60s或者120s等等。
说人话:

命令行下面敲一个命令后,直至下一个命令到来之前的时间间隔为interactive_time,如果这个时间间隔超过了interactive_timeout,则连接会被自动断开,下一个命令失败。不过一般的mysql客户端都有自动重连机制,下一个命令会在重连后执行。

[sql]
mysql> set interactive_timeout = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> show session variables like '%timeout%';
+----------------------------+----------+
| Variable_name | Value |
+----------------------------+----------+
| connect_timeout | 10 |
| interactive_timeout | 1 |
| wait_timeout | 28800 |
+----------------------------+----------+
10 rows in set (0.00 sec)

=====

[sql]
mysql> set wait_timeout = 1;
Query OK, 0 rows affected (0.00 sec)
【去泡杯茶,等会儿】

mysql> show session variables like '%timeout%';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 7
Current database: *** NONE ***

+----------------------------+----------+
| Variable_name | Value |
+----------------------------+----------+
| connect_timeout | 10 |
| interactive_timeout | 28800 |
| wait_timeout | 28800 |
+----------------------------+----------+
10 rows in set (0.01 sec)

wait_timeout:
The number of seconds the server waits for activity on a noninteractive connection (连接上没有活动命令,可能是客户端喝咖啡去了。)before closing it. Before MySQL 5.1.41, this timeout applies only to TCP/IP connections, not to connections made through Unix socket files, named pipes, or shared memory.
On thread startup, the session wait_timeout value is initialized from the global wait_timeout value or from the global interactive_timeout value, depending on the type of client
这里顺带解释一下什么是non-interactive connection

> Non-Interactive Commands
Just do a quick look up on a table without logging into the client, running the query then logging back out again.
You can instead just type one line using the ' -e ' flag.
[sql]
c:\mysql\bin\mysql -u admin -p myDatabase -e 'SELECT * FROM employee'

net_read_timeout / net_write_timeout
The number of seconds to wait for more data from a connection before aborting the read. Before MySQL 5.1.41, this timeout applies only to TCP/IP connections, not to connections made through Unix socket files, named pipes, or shared memory. When the server is reading from the client, net_read_timeout is the timeout value controlling when to abort. When the server is writing to the client, net_write_timeout is the timeout value controlling when to abort. See also slave_net_timeout.
On Linux, the NO_ALARM build flag affects timeout behavior as indicated in the description of the net_retry_count system variable.
解释:这个参数只对TCP/IP链接有效,分别是数据库等待接收客户端发送网络包和发送网络包给客户端的超时时间,这是在Activity状态下的线程才有效的参数

JDBC setQueryTimeout函数:

为了避免查询出现死循环,或时间过长等现象,而导致线程阻塞,在获得Statement的实例后,stmt.setQueryTimeout(10); 避免因为查询导致程序出现线程阻塞。

但昨天发现程序出现了,“ORA-01013: 用户请求取消当前的操作”的异常。手工执行出错SQL语句发现,这个语句耗时20多秒。因为setQueryTimeout(10),所以还没有执行完查询语句就抛出异常了。使用setQueryTimeout(10)时一定要把时间设置的长一些,如60秒以上。只要不导致线程长期阻塞,就可以。太短了容易抛出,“ORA-01013: 用户请求取消当前的操作”的异常

JDBC实现setQueryTimeout的原理:

[java]
class IfxCancelQueryImpl extends TimerTask
implements IfmxCancelQuery
{
IfxStatement stmt;
Timer t = null;

public void startCancel(IfxStatement paramIfxStatement, int paramInt)
throws Exception
{
this.stmt = paramIfxStatement;
this.t = new Timer(true);
this.t.schele(this, paramInt * 1000);
}

public void run()
{
try
{
this.stmt.cancel();
this.t.cancel();
}
catch (SQLException localSQLException)
{
this.t.cancel();
throw new Error(localSQLException.getErrorCode() + ":" + localSQLException.getMessage());
}
}
}

H. ACCESS数据库 如何定义时间限制

不行 你可以用其他方法 在数据库中来个表有这两个时间 用程序判断到期程序禁止使用~ 你在给Access 设置一个密码不就搞定了~

I. 请问,ASP与ACCESS数据库怎么实现使用时间限制功能,比如一个用户使用的期限为30天30天后就

从最初的数据库发展到今天的大型数据库管理系统,成为我们日常生活中重要的组成部分。假如不借助数据库的帮助,好多简单的工作将会变得冗长乏味,甚至会难以实现。本文从ACESS数据库的特征及与SQL SERVE数据库的区别展开详细的论述。

关键字
VBA语言 ,ACCESS数据库,ACCESS的特征,
桌面型数据库 SQL SERVE MDB ACCESS
扩展 ActiveX 控件 标准SQL语言
远程管理 数据库开发软件 OLE DB 引擎 办公应用软件
跨库查询 “最终用户” Connection 可扩展性
远程管理

在本学期OFFICE课程中,我们认识了ACCESS数据库,ACCESS数据库是种怎样的数据库,以及它与其他数据库有何区别,我想用我找到的一些资料来说明一下。
通过学习我们发现ACCESS 是桌面型关系数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。ACCESS数据库有一定的极限,如果数据达到100M左右,很容易造成服务器假死,或者消耗掉服务器的内存导致服务器崩溃。这样我们需要想一想,既然ACCESS有一定的的限制,那另外的一些数据库又怎样呢?我们通过和其他数据库的比较来说明。
首先,我们先具体的来看一下ACCESS的特性,ACCESS是MICROSOFT OFFICE的一个组件,一个前后台结合的数据库“软件”。也就是说ACCESS既拥有用户界面(VB可以用来开发用户界面);也拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在“表”中存储数据。而所有这些都存储在一个 MDB 格式的文件中(当然,也可以是 MDE 等格式)。 ACCESS不是一种存储格式,是一种软件。请大家严格区分 ACCESS 软件与 MDB 格式。VB下调用 MDB 格式(或 JET DB)只是调用一种格式的文件而已,并没有调用到 ACCESS,其实官方说法叫 “VB 的 JET 应用”。另外, MDB 格式的文件也可以被其他开发工具,比如 DELPHI / PB / C / PHP / ASP / CGI / C# / J# / JAVA / VB.NET / C.NET.... 调用。但是被调用的只是 MDB 文件,很多 ACCESS 软件所具有的功能,这些开发工具是无法调用的。而这种格式只要系统中有 OLE DB 引擎就可以支持。
ACCESS 中的一些对象可以被 VB 调用,但是必须在调用的机器上安装 ACCESS 这个软件(COPY一个MDB文件是不够的)或者安装额外的 ACTIVEX 控件
MDB 是一种文件格式,其中的数据以特定方式组织起来,而 ACCESS 这种软件的默认存储格式正好是 MDB ACCESS 这个软件本身就具有开发者使用的界面和适合于“最终用户”的界面,也就是我们通常说的前后台结合。
然后我们看一下ACCESS与其它数据库的区别,在这里我们着重来看ACCESS与SQL SERVER的区别:
首先,ACCESS有一定的极限,如果数据达到100M左右,很容易造成服务器假死,或者消耗掉服务器的内存导致服务器崩溃。 而SQL SERVER是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比ACCESS要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL SERVER还有更多的扩展,可以用存储过程,数据库大小无极限限制。
其次ACCESS是桌面型数据库,优点是:操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果还不错。缺点是:不支持并发处理、数据库易被下载存在安全隐患、数据存储量相对较小、数据量过大时严重影响网站访问速度和程序处理速度。SQL SERVER是基于服务器端的企业级数据库,适合大容量数据和大流量网站的应用,在性能、安全、功能管理、可扩展性上要比ACCESS强很多,两者并非同级别的数据库,有些功能ACCESS甚至无法做到。缺点是:一般用户无法直接对SQL SERVER进行远程管理、空间租用的成本比ACCESS稍高。
再次,就规模来说,VFP是一个中型数据库开发软件,比不上ORICAL、INFOMATION、POWERBUILDER等,是微软购并FOX公司后开发的一个数据库开发软件。可用于中型数据库软件工程的建构。可以用来做商业开发ACCESS严格来说不是一个数据库应用程序的开发工具,基本上是一个办公应用软件;不能用于商业用途的开发。只能在OFFICE环境下运行,受OFFICE本身的限制。所用语言只是基于VB语言的辅助性编程的VBA。就其规模来说属于小型的数据库应用软件。早年曾有过ACCESS2.0(英文版)的可以用于商业用途的数据库开发软件。但后来不知道为什么没有继续研发出新的ACCESS版本。 两者可拓展型相比,ACCESS好些,可使用的编程语言较多。ACCESS是 MICROSOFT OFFICE 的一个组件,一个前后台结合的数据库“软件”。 也就是说ACCESS既拥有用户界面(VB可以用来开发用户界面);也拥有逻辑、流程处理,即VBA语言(VB也可以用来做逻辑处理);又可以存储数据,即在“表”中存储数据。而所有这些都存储在一个 MDB 格式的文件中(当然,也可以是 MDE 等格式)。
总之,每一种数据库都有它们各自的优势和缺点,作为计算机系专业的学生,我们有必要掌握它们各自的优缺点以便灵活的掌握各种数据库的应用,并在行业中取得优秀的成就。

J. SQL Server数据库中限制某一个用户在指定时间段内登录的SQL语句

此例子的用户为:user
创建触发器,限制user用户的登录时间段(在8:00—18:00之间禁止登录)
CREATE TRIGGER noconn
ON ALL SERVER WITH EXECUTE AS 'user'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()= 'user' AND CONVERT(CHAR(10),GETDATE(),108) BETWEEN '8:00:00' AND '18:00:00'
ROLLBACK;
END;