当前位置:首页 » 编程语言 » revokesql

revokesql

发布时间: 2022-09-08 22:12:11

sql 使用REVOKE收回权限为什么还可以访问

看我下面的例子
如果你是本地库的话可以用系统验证方式登录
sqlplus / as sysdba
然后再给SYS赋权。

SQL> conn sys/sys as sysdba
Connected.
SQL> create user test identified by test;

User created.

SQL> grant all privileges to test;

Grant succeeded.

SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE

SQL> conn test/test
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'

SQL> conn sys/sys as sysdba
Connected.
SQL> grant dba to test;

Grant succeeded.

SQL> conn test/test
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'

SQL> conn sys/sys as sysdba
Connected.
SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE

SQL> grant sysdba to test;

Grant succeeded.

SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
TEST TRUE FALSE

SQL> conn test/test
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'

SQL> conn test/test as sysdba
Connected.
SQL> revoke all privileges from sys;
revoke all privileges from sys
*
ERROR at line 1:
ORA-01952: system privileges not granted to 'SYS'

SQL> revoke sysdba from sys;
revoke sysdba from sys
*
ERROR at line 1:
ORA-01998: REVOKE failed: user SYS always has SYSOPER and SYSDBA

❷ SQL命令动词(create,drop,alter,select,insert,update,delete,grant,revoke)是什么意思

数据查询 SELECT(查询)

数据定义 CREATE(创建表、视图。。。)、DROP(删除表、视图。。。)、ALTER(修改表、视图。。。)、
数据操作 INSERT(添加数据)、UPDATE(修改数据)、DELETE(删除数据)

数据控制 GRANT(为用户授权)、REVOKE(废除权限)

❸ SQL语句:GRANT或revoke应该是支持对列的权限操作的吧,具体应该怎么写如以下例

grant UPDATE on 表名 (列名) to 用户名
这样

问题2,数据库里面的权限作用范围在本数据库,如果是服务器权限的话就是该服务器罗,一般不用特别指定

❹ 回收用户User1对b表的查询权限的sql语句是什么求高手指教!!急!!

工具/材料:以Management Studio为例。

1、首先在桌面上,点击“Management Studio”图标。

❺ SQL server中的revoke cascade(用户权限回收问题)

如果不加,会出现像下面这种样子的错误。

消息 4611,级别 16,状态 1,第 1 行
若要撤消或拒绝可授予的特权,请指定 CASCADE 选项。

原因:
因为 U5可以转让insert权限
也就是以前执行的是:
GRANT insert on sc TO u5 With Grant Option
那么这个 u5 用户登录以后。
可以
GRANT insert on sc TO 其它的用户。

revoke insert
on sc
from u5 cascade

目的是把 给 u5 的权限回收回来, 同时把 u5 授权给其他用户的权限,也回收。

下面以一个例子来演示:
我的数据库上面,有 A 与 B , 两个用户。

我首先用管理员帐户,执行
GRANT SELECT ON Goods TO A With Grant Option

然后我用 A 用户登录。
执行了
1> GRANT SELECT ON Goods TO B With Grant Option
2> go
也就是 A 又给B 授权,允许B访问 Goods表,且还能授权给别人。

现在回到管理员帐户上
执行
REVOKE SELECT ON Goods FROM A CASCADE
从而把 A 的权限收回, 同时也把 A 给 B赋 的权限也收回。

那么现在 A 和 B 都没有权限访问 Goods 表了。

假如没有 cascade 连带删除的话,那么管理员把 A 的权限收回了。 但是 B还有权限。B还可以再把权限给 A,还可以给 C,D,E,F,G。

没有 cascade 的话,管理员要累死的。

❻ .SQL语言的REVOKE语句实现下列哪一种数据控制功能

REVOKE 实现了 收回用户 指定权限的功能。 例如: revoke create table from user; --收回了user 建表的权限 revoke delete on scott.emp from user; --收回了user对scott用户emp表的删除权限。

与grant实现功能相反。

❼ SQL语句完成核心功能的九个动词是什么

1、SELECT:查询出数据,也可用于变量赋值

2、CREATE:创建

3、DROP:删除

4、ALTER:修改

5、INSERT:插入

6、UPDATE:更新

7、DELETE:删除

8、Grant:授权

9、revoke:回收权限

(7)revokesql扩展阅读

语法

SQL语言分成了几种要素,包括:

1、子句,是语句和查询的组成成分。(在某些情况下,这些都是可选的。)[14]

2、表达式,可以产生任何标量值,或由列和行的数据库表

3、谓词,给需要评估的SQL三值逻辑(3VL)(true/false/unknown)或布尔真值指定条件,并限制语句和查询的效果,或改变程序流程。

4、查询,基于特定条件检索数据。这是SQL的一个重要组成部分。

5、语句,可以持久地影响纲要和数据,也可以控制数据库事务、程序流程、连接、会话或诊断。

6、SQL语句也包括分号(";")语句终结符。尽管并不是每个平台都必需,但它是作为SQL语法的标准部分定义的。

7、无意义的空白在SQL语句和查询中一般会被忽略,更容易格式化SQL代码便于阅读。

标准化

各种数据库的SQL方言通常不可移植,特别是在日期时间语法、字符串连接、NULL、比较的大小写敏感方面。只有PostgreSQL与Mimer SQL努力遵从标准。Oracle数据库的DATE行为如同DATETIME,缺少TIMEtype)。

SQL在1986年被ANSI标准化,1987年被ISO标准化。由ISO/IEC JTC 1, Information technology, Subcommittee SC 32, Data management and interchange维护。标准名称通常为如下模式:ISO/IEC 9075-n:yyyy Part n: title。

❽ 请用SQL的GRANT 和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:

如何让数据库的用户,只能 SELECT 到自己 INSERT 的数据。如何让数据库的用户,只能看到自己创建的数据。

--创建测试表
-- 3个字段,1自增主键,1数据,1所有者。
CREATE TABLE B (
ID INT identity(1, 1) PRIMARY KEY,
DATA VARCHAR(10),
OWNER VARCHAR(20)
);
go

-- 视图,隐藏所有者这一列
-- 并强制只能检索 所有者 = 当前登录用户
CREATE VIEW VB AS
SELECT
ID, DATA
FROM
B
WHERE
OWNER = user;
go

-- 首先插入3条数据,模拟用户 A,B,C
INSERT INTO B
SELECT 'A', 'A' UNION ALL
SELECT 'B', 'B' UNION ALL
SELECT 'C', 'C'
go

--然后 创建触发器,确保插入数据的时候,OWNER = 当前登录用户.
CREATE TRIGGER BeforeInsertB
ON B
FOR INSERT
AS
BEGIN
UPDATE
B
SET
Owner = user
FROM
B JOIN INSERTED ON (B.id = INSERTED.ID);
END
go

-- 开始模拟自己的插入
INSERT INTO VB VALUES( 'Me' );
GO
-- 尝试检索
SELECT * FROM VB
GO
ID DATA
----------- ----------
4 Me
(1 行受影响)
只看到自己插入的数据。

-- 下面去 创建 A , B 用户。
CREATE LOGIN A
WITH PASSWORD='A',
DEFAULT_DATABASE=[Test],
DEFAULT_LANGUAGE=[简体中文],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF;
CREATE LOGIN B
WITH PASSWORD='B',
DEFAULT_DATABASE=[Test],
DEFAULT_LANGUAGE=[简体中文],
CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF;
CREATE USER [A]
FOR LOGIN [A];
CREATE USER [B]
FOR LOGIN [B];

-- 对 A,B 用户进行 VIEW 的授权,
GRANT
INSERT, SELECT, UPDATE
ON [Test].[dbo].[VB]
TO A;
GRANT
INSERT, SELECT, UPDATE
ON [Test].[dbo].[VB]
TO B;
GO

-- 分别以 A 用户 和 B 用户进行登录,并查询。
E:\>sqlcmd -S "localhost\SQLEXPRESS" -U A -P A
1> use test
2> select * from vb
3> go
已将数据库上下文更改为 'test'。
ID DATA
----------- ----------
1 A
(1 行受影响)
1> select * from B
2> go
消息 229,级别 14,状态 5,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
拒绝了对对象 'B' (数据库 'test',架构 'dbo')的 SELECT 权限。

E:\>sqlcmd -S "localhost\SQLEXPRESS" -U B -P B
1> use test
2> go
已将数据库上下文更改为 'test'。
1> select * from vb
2> go
ID DATA
----------- ----------
2 B
(1 行受影响)
1> select * from B
2> go
消息 229,级别 14,状态 5,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
拒绝了对对象 'B' (数据库 'test',架构 'dbo')的 SELECT 权限。
1> INSERT INTO vb VALUES ('B Only');
2> go
(1 行受影响)
1> select * FROM VB;
2> go
ID DATA
----------- ----------
2 B
5 B Only
(2 行受影响)

结果显示,A,B用户登录以后,只能看到 Owner = 自己的数据。
因为只有对 View 有权限,对原始的表没有权限,因此看不到别人的数据。

❾ SQL语言的GRANT和REVOKE语句主要是用来维护数据库的

选C,SQL语言的GRANT和REVOKE语句主要是用来维护数据库的安全性。

GRANT 和 REVOKE 两个语句分别是授予权限和回收权限语句,具有对 SQL语言的安全控制功能。

1、授权命令 grant,语法格式(SQL语句不区分大小写):Grant <权限> on 表名[(列名)] to 用户 With grant option

或 GRANT <权限> ON <数据对象> FROM <数据库用户>

//数据对象可以是表名或列名

//权限表示对表的操作,如select,update,insert,delete

2、注:授权命令是由数据库管理员使用的,若给用户分配权限时带With grant option子句,

则普通用户获权后,可把自己的权限授予其他用户。

(9)revokesql扩展阅读:

回收revoke

revoke语句:收回授予的权限

revoke一般格式:

revoke <权限> [,<权限>]…

on <对象类型 > <对象名> [,<对象类型 > <对象名>]..

from <用户> [,<用户>]…

[cascade | restrict];

例子:收回所有用户对表SC的查询权限

revoke select

on table sc

from public;

热点内容
越容易压缩 发布:2025-01-13 07:37:37 浏览:557
ecstore数据库 发布:2025-01-13 07:29:43 浏览:296
手机设置密码忘记了怎么解开 发布:2025-01-13 07:28:29 浏览:20
存储卡交流 发布:2025-01-13 07:16:06 浏览:984
php字符串浮点数 发布:2025-01-13 07:15:28 浏览:998
python排序cmp 发布:2025-01-13 07:09:04 浏览:72
云脚本精灵 发布:2025-01-13 07:03:27 浏览:619
高维访问 发布:2025-01-13 07:03:23 浏览:976
保卫萝卜有脚本吗 发布:2025-01-13 06:30:29 浏览:743
天猫上传 发布:2025-01-13 06:06:35 浏览:156