当前位置:首页 » 编程语言 » sql用户授权指定列
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql用户授权指定列

发布时间: 2022-08-04 06:53:39

⑴ oracle数据库怎么授予用户修改表某一列的权限,

oracle中给表中指定的列赋权限的sql语句如下:
比如有用户joan需要赋给emp表的emp_name操作权限,写法如下
GRANT update (emp_name)
ON edwin.emp
TO joan;
如果joan去更新emp表中的salary字段就会报错:
update edwin.emp set salary=100000;
ERROR at line 1:
ORA-01031: insufficient privileges

⑵ 用SQL语句怎么设置权限

SQL是Structured Quevy Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。

##1 二、SQL数据库数据体系结构

SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。在SQL中,关系模式(模式)称为“基本表”(base table);存储模式(内模式)称为“存储文件”(stored file);子模式(外模式)称为“视图”(view);元组称为“行”(row);属性称为“列”(column)。名称对称如^00100009a^:

##1 三、SQL语言的组成

在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:

1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2.一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3.一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。

4.一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。

5.用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。

6.SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。

##1 四、对数据库进行操作

SQL包括了所有对数据库的操作,主要是由4个部分组成:

1.数据定义:这一部分又称为“SQL DDL”,定义数据库的逻辑结构,包括定义数据库、基本表、视图和索引4部分。

2.数据操纵:这一部分又称为“SQL DML”,其中包括数据查询和数据更新两大类操作,其中数据更新又包括插入、删除和更新三种操作。

3.数据控制:对用户访问数据的控制有基本表和视图的授权、完整性规则的描述,事务控制语句等。

4.嵌入式SQL语言的使用规定:规定SQL语句在宿主语言的程序中使用的规则。

下面我们将分别介绍:

##2 (一)数据定义

SQL数据定义功能包括定义数据库、基本表、索引和视图。

首先,让我们了解一下SQL所提供的基本数据类型:(如^00100009b^)

1.数据库的建立与删除

(1)建立数据库:数据库是一个包括了多个基本表的数据集,其语句格式为:

CREATE DATABASE <数据库名> 〔其它参数〕

其中,<数据库名>在系统中必须是唯一的,不能重复,不然将导致数据存取失误。〔其它参数〕因具体数据库实现系统不同而异。

例:要建立项目管理数据库(xmmanage),其语句应为:

CREATE DATABASE xmmanage

(2) 数据库的删除:将数据库及其全部内容从系统中删除。

其语句格式为:DROP DATABASE <数据库名>

例:删除项目管理数据库(xmmanage),其语句应为:

DROP DATABASE xmmanage

2.基本表的定义及变更

本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。

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

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

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

⑷ 对已登录用户帐户进一步授权访问所设计的数据库中的某些表的SQL语句怎么写急~~

用grant语句
如果是sql server的话 你可以在联机丛书中查询grant 里面有很详细的解答
下例显示权限的优先顺序。首先,给 public 角色授予 SELECT 权限。然后,将特定的权限授予用户 Mary、John 和 Tom。于是这些用户就有了对 authors 表的所有权限。

USE pubs
GO

GRANT SELECT
ON authors
TO public
GO

GRANT INSERT, UPDATE, DELETE
ON authors
TO Mary, John, Tom
GO

GRANT
在安全系统中创建项目,使当前数据库中的用户得以处理当前数据库中的数据或执行特定的 Transact-SQL 语句。

语法
语句权限:

GRANT { ALL | statement [ ,...n ] }
TO security_account [ ,...n ]

对象权限:

GRANT
{ ALL [ PRIVILEGES ] | permission [ ,...n ] }
{
[ ( column [ ,...n ] ) ] ON { table | view }
| ON { table | view } [ ( column [ ,...n ] ) ]
| ON { stored_procere | extended_procere }
| ON { user_defined_function }
}
TO security_account [ ,...n ]
[ WITH GRANT OPTION ]
[ AS { group | role } ]

参数
ALL

表示授予所有可用的权限。对于语句权限,只有 sysadmin 角色成员可以使用 ALL。对于对象权限,sysadmin 和 db_owner 角色成员和数据库对象所有者都可以使用 ALL。

statement

是被授予权限的语句。语句列表可以包括:

CREATE DATABASE

CREATE DEFAULT

CREATE FUNCTION

CREATE PROCEDURE

CREATE RULE

CREATE TABLE

CREATE VIEW

BACKUP DATABASE

BACKUP LOG
n

一个占位符,表示此项可在逗号分隔的列表中重复。

TO

指定安全帐户列表。

security_account

是权限将应用的安全帐户。安全帐户可以是:

Microsoft® SQL Server™ 用户。

SQL Server 角色。

Microsoft Windows NT® 用户。

Windows NT 组。
当权限被授予一个 SQL Server 用户或 Windows NT 用户帐户,指定的 security_account 是权限能影响到的唯一帐户。若权限被授予 SQL Server 角色或 Windows NT 组,权限可影响到当前数据库中该组或该角色成员的所有用户。若组或角色和它们的成员之间存在权限冲突,最严格的权限 (DENY) 优先起作用。security_account 必须在当前数据库中存在;不可将权限授予其它数据库中的用户、角色或组,除非已为该用户在当前数据库中创建或给予了访问权限。

两个特殊的安全帐户可用于 GRANT 语句。授予 public 角色的权限可应用于数据库中的所有用户。授予 guest 用户的权限可为所有在数据库中没有用户帐户的用户使用。

当授予某个 Windows NT 本地组或全局组权限时,请指定在其上定义该组的域名或计算机名,然后依次输入反斜线和组名。但是,若要授予访问 Windows NT 内置本地组的权限,请指定 BUILTIN 而不是域名或计算机名。

PRIVILEGES

是可以包含在符合 SQL-92 标准的语句中的可选关键字。

permission

是当前授予的对象权限。当在表、表值函数或视图上授予对象权限时,权限列表可以包括这些权限中的一个或多个:SELECT、INSERT、DELETE、REFENENCES 或 UPDATE。列列表可以与 SELECT 和 UPDATE 权限一起提供。如果列列表未与 SELECT 和 UPDATE 权限一起提供,那么该权限应用于表、视图或表值函数中的所有列。

在存储过程上授予的对象权限只可以包括 EXECUTE。在标量值函数上授予的对象权限可以包括 EXECUTE 和 REFERENCES。

为在 SELECT 语句中访问某个列,该列上需要有 SELECT 权限。为使用 UPDATE 语句更新某个列,该列上需要有 UPDATE 权限。

为创建引用某个表的 FOREIGN KEY 约束,该表上需要有 REFERENCES 权限。

为使用引用某个对象的 WITH SCHEMABINDING 子句创建 FUNCTION 或 VIEW,该对象上需要有 REFERENCES 权限。

column

是当前数据库中授予权限的列名。

table

是当前数据库中授予权限的表名。

view

是当前数据库中被授予权限的视图名。

stored_procere

是当前数据库中授予权限的存储过程名。

extended_procere

是当前数据库中授予权限的扩展存储过程名。

user_defined_function

是当前数据库中授予权限的用户定义函数名。

WITH GRANT OPTION

表示给予了 security_account 将指定的对象权限授予其它安全帐户的能力。WITH GRANT OPTION 子句仅对对象权限有效。

AS {group | role}

指当前数据库中有执行 GRANT 语句权力的安全帐户的可选名。当对象上的权限被授予一个组或角色时使用 AS,对象权限需要进一步授予不是组或角色的成员的用户。因为只有用户(而不是组或角色)可执行 GRANT 语句,组或角色的特定成员授予组或角色权力之下的对象的权限。

详细的可以参见sql server的连接丛书!

⑸ sql中如何用什么语句给用户授权

sql语言用grant语句向用户授予操作权限,grant语句的一般格式为:
grant
<权限>[,<权限>]...
[on
<对象类型>
<对象名>]
to
<用户>[,<用户>]...
[with
grant
option];
其语义为:将对指定操作对象的指定操作权限授予指定的用户。
不同类型的操作对象有不同的操作权限,常见的操作权限如表3-4所示。
表3-4
不同对象类型允许的操作权限
对象
对象类型
操作权限
属性列
table
select,
insert,
update,
delete
all
privieges
视图
table
select,
insert,
update,
delete
all
privieges
基本表
table
select,
insert,
update,
alter,
index,delete
all
privieges
数据库
database
createtab
详细信息…
接受权限的用户可以是一个或多个具体用户,也可以是public即全体用户。
如果指定了with
grant
option子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定with
grant
option子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。
例1
把查询student表权限授给用户u1
grant
select
on
table
student
to
u1;
例2
把对student表和course表的全部权限授予用户u2和u3
grant
all
priviliges
on
table
student,
course
to
u2,
u3;
例3
把对表sc的查询权限授予所有用户
grant
select
on
table
sc
to
public;
例4
把查询student表和修改学生学号的权限授给用户u4
详细信息…
这里实际上要授予u4用户的是对基本表student的select权限和对属性列sno的update权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权操作的sql语句为:
grant
update(sno),
select
on
table
student
to
u4;
例5
把对表sc的insert权限授予u5用户,并允许他再将此权限授予其他用户
grant
insert
on
table
sc
to
u5
with
grant
option;
详细信息…
执行此sql语句后,u5不仅拥有了对表sc的insert权限,还可以传播此权限,即由u5用户发上述grant命令给其他用户。
例如u5可以将此权限授予u6:
grant
insert
on
table
sc
to
u6
with
grant
option;
同样,u6还可以将此权限授予u7:
grant
insert
on
table
sc
to
u7;
因为u6未给u7传播的权限,因此u7不能再传播此权限。
例6
dba把在数据库s_c中建立表的权限授予用户u8
grant
createtab
on
database
s_c
to
u8;

⑹ SQL设置只具有查询某列特定字段的权力

我一般是这样处理的,先创建一个视图,查询出这个视图中属于03物流1
的学生信息,再给用户U2赋权限,让U2用户只能查询这个视图

⑺ 如何用SQL语句为指定用户授权

指定数据库,需要有所有表查询权限和视图创建权限use[database]Grantselectto[userName]GRANTCREATEVIEWTO[userName]

⑻ 在sql语言中,使用什么语句进行授权

授权命令 grant,语法格式(SQL语句不区分大小写):

Grant <权限> on 表名[(列名)] to 用户 With grant option
如给user1添加查询的权限:
grant select on student to user1 With grant option

⑼ SQL 授权问题

用户1对用户2授权select并可传播授权,用户2对用户3授权select并可传播授权,用户3对用户1授权select 构成一个循环授权了,这肯定是会出错误的了。

授权是可以成功,但是在撤销授权过程中就会出现错误的。

⑽ 请问如何用SQL语句为指定用户授权

用SQL语句为指定用户授权的具体步骤如下:

我们需要准备的材料分别是:电脑、sqlserver2008

1、首先打开sqlserver2008,之后点击打开左上角的“新建查询”。