dataTable, link para alterar, está alterando todo o banco

galera
tenho um dataTable onde lista todos os dados do banco, e gera um link ‘Alterar’ para cada dado…
eu cliko em alterar, ele chama a pagina de edição, eu altero e cliko no botão Alterar… após isso…
todo o banco é alterado, todo os dados com o mesmo nome… era so pra alterar o dado de onde eu cliquei no link…

Pagina que lista:


<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<HTML>
<HEAD>
<title>Lista de Usuarios</title> 
<LINK href="estilo.css" type="text/css" rel="stylesheet">
</HEAD>


<body bgcolor="white">
<center><h2>LISTA DE USUARIOS</h2></center>

<div align=center>	
	<f:view><br><h:dataTable value="#{usuarios.lista}" var="usuarios">


			<h:column>
				Login: |<h:outputText value="#{usuarios.nome}"/>
			</h:column>
			
			<h:column>
				 Nome:<h:outputText value="#{usuarios.login}"/>
			</h:column>
				
			<h:column>
				<h:form>
				<h:commandLink value="Alterar" action="alterar">
				<f:param name="nome" value="#{usuarios.nome}"></f:param>
				<f:param name="login" value="#{usuarios.login}"></f:param>
				</h:commandLink>
			</h:form></h:column>
			
		</h:dataTable>
		</f:view>
</div>
</body>
</HTML>

Pagina Que altera

[code]
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>

JSF

Alterar Dados

                    <tr>
                    <td>Nome:</td>
                    <td><h:inputText value="#{usuarios.nome}"/></td>
                </tr>
                
                     <tr>
                    <td>Login:</td>
                    <td><h:inputText value="#{usuarios.login}"/></td>
                </tr>
             
		
		 <tr>
                <tr><td colspan="2" align="center">
                        <h:commandButton value="Alterar" action="#{usuarios.altera}"/>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <h:outputText id="resultado" value="#{usuarios.status}" />
                    </td>
                </tr>
            </table>
        </h:form>

        
    </f:view> 
</body> 
[/code]

Pq ele ta atualizando todo o banco e não só a linha que eu escolhi?

Será que nao falta o id para a alteração?
algo que identifique esse registro!